diff --git a/README.md b/README.md new file mode 100644 index 0000000000000000000000000000000000000000..c0e66c232600504c1c5ba55a20665dd1810a6de8 --- /dev/null +++ b/README.md @@ -0,0 +1,77 @@ +from wordcloud import WordCloud, ImageColorGenerator +from pyecharts import Line, Bar, Geo +import matplotlib.pyplot as plt +import pandas as pd +import numpy as np +import seaborn as sns +import jieba +plt.rcParams['font.sans-serif']=['SimHei'] #显示中文标签 +plt.rcParams['axes.unicode_minus']=False # 设置正常显示符号 +##先对爬取出来的数据进行清洗,去除重复的换乘站信息。 +# 设置列名与数据对齐 +pd.set_option('display.unicode.ambiguous_as_wide', True) +pd.set_option('display.unicode.east_asian_width', True) +# 显示10行 +pd.set_option('display.max_rows', 10) +# 读取数据 +df = pd.read_csv('../data/data-analyselesson/subway.csv', header=None, names=['city', 'line', 'station'], encoding='gbk') +# print(type(df)) +print(df.info()) +print(df.head()) +ck_df=df.isnull().sum().sort_values(ascending=False) +print(ck_df) +# 统计各个城市地铁线路情况 +df_line = df.groupby(['city', 'line']).count().reset_index() +print(df_line) +df_1=df_line.sort_values(by='station', ascending=False) +df_2=df_1.groupby('city')['station'].max().reset_index(drop=False)#保留索引 +line_station_c=df_2.sort_values(by='station',ascending=False) +# line_station_c.to_csv("../1.csv",header=False,index=False) +plt.figure(figsize=(15,5)) +labelline=list(line_station_c['city']) +# line_text=pd.merge(left=line_station_c,right=df_1,on=['city','station'],how='inner') +# line_text.to_csv("../2.csv",header=False,index=False) +labelline=labelline#+line_text['line'].map(str) +plt.xlabel('城市') +plt.ylabel('站点数量') +plt.bar([i for i in labelline],line_station_c['station']) +plt.title('每个城市哪条线路的站点数最多') +plt.show() +plt.close() +#各城市中使用大学作为站点名的概率图或者直方图 + +#问题:统计各个城市的大学数量,然后利用回归图进行拟合(分析各个城市的大学数量与站点数量的关系 +df_uni= pd.read_csv('../university.csv', header=None, names=['city', 'uni_count'], encoding='gbk') +df_uni=pd.merge(left=line_station_c,right=df_uni,on='city',how='inner') #将两个表格中的数据基于city列进行内连接。 +x=df_uni['uni_count'] +y=df_uni['station'] +sns.regplot(x=x,y=y,color='b') +plt.title('分析各个城市的大学数量与站点数量的关系') +plt.show() +plt.close() +#散点图 +fig=plt.figure(figsize=(10,7)) +plt.xlabel('站点数量') +plt.ylabel('大学数量') +plt.title('各个城市的大学数量与站点数量的关系') +plt.scatter(x=x,y=y,cmap='b',marker='*',alpha=0.8) +plt.grid() +plt.show() +plt.close() +#seaborn的双变量图:可以查看多变量之间的分布关系,也可以显示它本身的单变量情况 +df_s=df_uni +sns.jointplot(x='uni_count',y='station',data=df_s) +plt.show() +plt.close() + +#全国各城市的总的换乘站点数量(2换乘、3换乘、4换乘等)分布统计 +df_1=df.groupby(['city','station']).count().reset_index() +print(df_1) +df_1=df_1[df_1['line']>1]#筛选出来全国的换乘站点数 +tran_sit=df_1.groupby('line').count().reset_index() #保留原索引,但是值是count()函数计数之后的值 +plt.figure(figsize=(10,5)) +plt.xlabel('站点可换乘等级') +plt.ylabel('站点数量') +plt.bar(tran_sit['line'],tran_sit['station'],color='g') +plt.title('全国各城市总的换乘站点数量(2换乘、3换乘、4换乘等)分布统计') +plt.show()