Python數(shù)據(jù)分析與可視化典型項目實戰(zhàn)模塊一-人口與 GDP 數(shù)據(jù)分析_第1頁
Python數(shù)據(jù)分析與可視化典型項目實戰(zhàn)模塊一-人口與 GDP 數(shù)據(jù)分析_第2頁
Python數(shù)據(jù)分析與可視化典型項目實戰(zhàn)模塊一-人口與 GDP 數(shù)據(jù)分析_第3頁
Python數(shù)據(jù)分析與可視化典型項目實戰(zhàn)模塊一-人口與 GDP 數(shù)據(jù)分析_第4頁
Python數(shù)據(jù)分析與可視化典型項目實戰(zhàn)模塊一-人口與 GDP 數(shù)據(jù)分析_第5頁
已閱讀5頁,還剩60頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

模塊一人口與GDP數(shù)據(jù)分析Python數(shù)據(jù)分析與可視化典型項目實戰(zhàn)(微課版)【任務描述】人口是影響國家和地區(qū)發(fā)展的重要因素,我國在2020年開展了第七次全國人口普查,普查標準時點是2020年11月1日零時。第七次全國人口普查是新時代開展的一次重大國情國力調(diào)查,全面查清了我國人口數(shù)量、結(jié)構(gòu)、分布等方面的情況,為完善我國人口發(fā)展戰(zhàn)略和政策體系,促進人口長期均衡發(fā)展,科學制定國民經(jīng)濟和社會發(fā)展規(guī)劃,推動經(jīng)濟高質(zhì)量發(fā)展,開啟全面建設社會主義現(xiàn)代化國家新征程,向第二個百年奮斗目標進軍,提供科學準確的統(tǒng)計信息支持。【任務要求】在JupyterNotebook開發(fā)環(huán)境中創(chuàng)建tc01-01.ipynb,然后在單元格中編寫代碼并輸出對應的結(jié)果?!救蝿?-1】第七次全國人口普查數(shù)據(jù)分析與視化第七次全國人口普查數(shù)據(jù)分析與視化導入通用模塊的代碼詳見“本書導學”,導入其他模塊的代碼如下:frommons.utilsimportJsCodeimportrandompd.set_option('precision',2)importaltairasalt1.導入模塊第七次全國人口普查數(shù)據(jù)分析與視化(1)讀取數(shù)據(jù)2.2020年全國及各地區(qū)每10萬人口中擁有的各類受教育程度人數(shù)分布數(shù)據(jù)分析與可視化df_edu=pd.read_excel(r"data\2020年地區(qū)每10萬人口中擁有的各類受教育程度人數(shù).xlsx")(2)查看部分數(shù)據(jù)df_edu.head()(3)定義列名df_edu.columns=["地區(qū)","大學","高中","初中","小學"]第七次全國人口普查數(shù)據(jù)分析與視化(4)查看是否存在缺失值df_edu.isnull().sum()(5)刪除“地區(qū)”列中多余的空格df_edu['地區(qū)']=df_edu['地區(qū)'].str.replace('','')(6)復制數(shù)據(jù)集education=df_edu.copy()(7)計算受教育程度為“其他”的人數(shù)education['其他']=100000-education['大學']-education['高中']-education['初中']-education['小學']第七次全國人口普查數(shù)據(jù)分析與視化(8)對數(shù)據(jù)集進行排序education.sort_values(by=['大學','高中','初中','小學','其他'],ascending=False,inplace=True)(9)繪制堆疊柱形圖matplotlib.rc('figure',figsize=(16,8))education.plot.bar(x='地區(qū)',y=['大學','高中','初中','小學','其他'],stacked=True)plt.title('各地區(qū)每10萬人口中各類受教育程度的人數(shù)',loc='left',fontsize=20)plt.legend(bbox_to_anchor=(1,1.1),ncol=10,facecolor='None')plt.xlabel('')plt.show()第七次全國人口普查數(shù)據(jù)分析與視化圖1-1各地區(qū)每10萬人口中各類受教育程度的人數(shù)堆疊柱形圖第七次全國人口普查數(shù)據(jù)分析與視化(10)重置索引df_edu.set_index("地區(qū)",inplace=True)(11)獲取列名稱和全國各類受教育程度人數(shù)edu1=df_edu.iloc[0,:].index.tolist()cedu1=df_edu.iloc[0,:].values.tolist()(12)繪制全國每10萬人口中擁有的各類受教育程度人數(shù)分布玫瑰圖掃描二維碼在線瀏覽電子活頁1-1“繪制全國每10萬人口中擁有的各類受教育程度人數(shù)分布玫瑰圖”中的代碼及繪制的圖形。第七次全國人口普查數(shù)據(jù)分析與視化(13)刪除“地區(qū)”列“全國”對應的行后查看行索引df_edu=df_edu.drop(index="全國")df_edu.index代碼如下:Index(['北京','天津','河北','山西','內(nèi)蒙古','遼寧','吉林','黑龍江','上海','江蘇','浙江','安徽','福建','江西','山東','河南','湖北','湖南','廣東','廣西','海南','重慶','四川','貴州','云南','西藏','陜西','甘肅','青海','寧夏','新疆'],dtype='object',name='地區(qū)')輸出結(jié)果:(14)繪制各地區(qū)每10萬人口中各類受教育程度人數(shù)的堆疊條形圖掃描二維碼在線瀏覽電子活頁1-2“繪制各地區(qū)每10萬人口中各類受教育程度人數(shù)的堆疊條形圖”中的代碼及繪制的圖形。第七次全國人口普查數(shù)據(jù)分析與視化3.2020年全國及各地區(qū)人口性別構(gòu)成數(shù)據(jù)分析與可視化讀取數(shù)據(jù)df_gender=pd.read_excel(r"data\2020年各地區(qū)人口性別構(gòu)成.xlsx")查看部分數(shù)據(jù)df_gender.head()從輸出結(jié)果可以看出:全國人口中,男性人口占51.24%,女性人口占48.76%。總?cè)丝谛詣e比(以女性為100,男性對女性的比例)為105.07,與2010年基本持平,略有降低。我國人口的性別結(jié)構(gòu)持續(xù)改善。第七次全國人口普查數(shù)據(jù)分析與視化定義列名稱df_gender.columns=["地區(qū)","男性占比","女性占比","性別比"]查看是否存在缺失值df_gender.isnull().sum()刪除“地區(qū)”列中多余的空格df_gender['地區(qū)']=df_gender['地區(qū)'].str.replace('','')重置索引df_gender.set_index("地區(qū)",drop=True,inplace=True)第七次全國人口普查數(shù)據(jù)分析與視化獲取行索引和男女占比regions2=df_gender.index.tolist()man=df_gender["男性占比"].values.tolist()woman=df_gender["女性占比"].values.tolist()繪制堆疊條形圖bar2=(Bar(init_opts=opts.InitOpts(width="900px",height="600px")).add_xaxis(regions2).add_yaxis("男性占比",man,stack="stack1").add_yaxis("女性占比",woman,stack="stack1").set_series_opts(label_opts=opts.LabelOpts(is_show=True,position='inside')).set_global_opts(legend_opts=opts.LegendOpts(pos_left="right"),title_opts=opts.TitleOpts(title="全國及各地區(qū)人口性別構(gòu)成")).reversal_axis())bar2.render_notebook()第七次全國人口普查數(shù)據(jù)分析與視化圖1-2全國及各地區(qū)人口性別構(gòu)成的堆疊條形圖繪制2020年各地區(qū)性別構(gòu)成的金字塔圖掃描二維碼在線瀏覽電子活頁1-3“繪制2020年各地區(qū)性別構(gòu)成的金字塔圖”中的代碼及繪制的圖形。第七次全國人口普查數(shù)據(jù)分析與視化4.2020年各地區(qū)人口年齡構(gòu)成數(shù)據(jù)分析與可視化讀取數(shù)據(jù)df_region_age=pd.read_excel(r"data\2020年各地區(qū)人口年齡構(gòu)成.xlsx")查看部分數(shù)據(jù)df_region_age.head()第七次全國人口普查數(shù)據(jù)分析與視化定義列名稱df_region_age.columns=["地區(qū)","0—14歲","15—59歲","60歲及以上","65歲及以上"]查看是否存在缺失值df_region_age.isnull().sum()刪除“地區(qū)”列中多余的空格df_region_age['地區(qū)']=df_region_age['地區(qū)'].str.replace('','')重置索引df_region_age.set_index("地區(qū)",inplace=True)刪除“地區(qū)”列“全國”對應的行后查看行索引df_region_age.drop(index="全國",inplace=True)df_region_age.index獲取行索引和各年齡段占比數(shù)據(jù)regions3=df_region_age.index.tolist()age14=df_region_age["0—14歲"].values.tolist()age59=df_region_age["15—59歲"].values.tolist()age60=df_region_age["60歲及以上"].values.tolist()age65=df_region_age["65歲及以上"].values.tolist()第七次全國人口普查數(shù)據(jù)分析與視化繪制堆疊條形圖bar3=(Bar(init_opts=opts.InitOpts(width="900px",height="600px")).add_xaxis(regions1).add_yaxis("0—14歲",age14,stack="stack1").add_yaxis("15—59歲",age59,stack="stack1").add_yaxis("60歲及以上",age60,stack="stack1").add_yaxis("65歲及以上",age65,stack="stack1").set_series_opts(label_opts=opts.LabelOpts(is_show=True,position="inside")).set_global_opts(title_opts=opts.TitleOpts(title="各地區(qū)人口年齡構(gòu)成"),legend_opts=opts.LegendOpts(pos_left="right")).reversal_axis())bar3.render_notebook()第七次全國人口普查數(shù)據(jù)分析與視化圖1-3各地區(qū)人口年齡構(gòu)成的堆疊條形圖第七次全國人口普查數(shù)據(jù)分析與視化5.2020年全國人口年齡構(gòu)成數(shù)據(jù)分析與可視化讀取數(shù)據(jù)df_age=pd.read_excel(r"data\2020年全國人口年齡構(gòu)成.xlsx")查看部分數(shù)據(jù)df_age.head()定義列名稱df_age.columns=["年齡分段","人數(shù)","比例"]重置索引df_age.set_index("年齡分段",inplace=True)提取部分行數(shù)據(jù)df_age=df_age.iloc[1:4,:]第七次全國人口普查數(shù)據(jù)分析與視化獲取行索引和各年齡段人口數(shù)據(jù)age=df_age.index.tolist()cage=df_age["人數(shù)"].values.tolist()繪制全國各年齡段人口數(shù)據(jù)餅圖掃描二維碼在線瀏覽電子活頁1-4“繪制全國各年齡段人口數(shù)據(jù)餅圖”中的代碼及繪制的圖形。繪制全國各年齡段人口數(shù)據(jù)的圓環(huán)圖繪制全國各年齡段人口數(shù)據(jù)的圓環(huán)圖,對應的代碼及繪制的圖形詳見本書配套的電子活頁1-2。第七次全國人口普查數(shù)據(jù)分析與視化繪制全國各年齡段人口數(shù)據(jù)的漏斗圖frompyecharts.chartsimportFunnelx_data=df_age.index.tolist()y_data=df_age['人數(shù)'].values.tolist()data=[[x_data[i],y_data[i]]foriinrange(len(x_data))]funnel1=(Funnel().add(series_name="",data_pair=data,sort_="ascending",gap=2,label_opts=opts.LabelOpts(is_show=True,position="inside",formatter=":zcaccad%"),).set_global_opts(title_opts=opts.TitleOpts(title="全國人口年齡漏斗圖",subtitle="全國人口年齡構(gòu)成",pos_top="2%"),legend_opts=opts.LegendOpts(pos_left="right",pos_top='2%',orient="horizontal")))funnel1.render_notebook()第七次全國人口普查數(shù)據(jù)分析與視化圖1-4全國各年齡段人口數(shù)據(jù)的漏斗圖掃描二維碼在線瀏覽電子活頁1-5“Funnel的add()方法主要參數(shù)說明”中的內(nèi)容。第七次全國人口普查數(shù)據(jù)分析與視化6.2020年全國及各地區(qū)人口數(shù)量分析與可視化讀取數(shù)據(jù)data_path=r"data\2020年各地區(qū)人口.xlsx"df_district=pd.read_excel(data_path,skiprows=0)查看部分數(shù)據(jù)df_district.head()定義刪除“地區(qū)”列中多余文字的函數(shù)parse_region()importredefparse_region(x):x1=re.sub(r"[\W\d]","",x)ifx1[:3]in["黑龍江","內(nèi)蒙古"]:returnx1[:3]else:returnx1[:2]第七次全國人口普查數(shù)據(jù)分析與視化對“地區(qū)”列的值進行規(guī)范化處理df_district['地區(qū)']=df_district['地區(qū)'].str.replace('','')df_district["地區(qū)"]=df_district["地區(qū)"].map(parse_region)定義列名稱df_district.columns=["地區(qū)","人口數(shù)","2020年人口占比","2010年人口占比"]查看是否存在缺失值df_district.isnull().sum()復制數(shù)據(jù)集population1=df_district.copy()提取數(shù)據(jù)集中部分列的部分行數(shù)據(jù)df_district=df_district.iloc[1:32,:]df_district=df_district.loc[1:,:]重置索引df_district.set_index("地區(qū)",inplace=True)刪除空值df_district.dropna(how="any",inplace=True)第七次全國人口普查數(shù)據(jù)分析與視化轉(zhuǎn)換與查看數(shù)據(jù)類型df_district["人口數(shù)"]=df_district["人口數(shù)"].astype(int)df_district.dtypes繪制2020年與2010年各地區(qū)人口占比對比柱形圖掃描二維碼在線瀏覽電子活頁1-6“繪制2020年與2010年各地區(qū)人口占比對比柱形圖”中的代碼。繪制2020年各地區(qū)人口數(shù)量分布地圖繪制2020年各地區(qū)人口數(shù)量分布地圖,對應的代碼詳見本書配套的電子活頁1-3。第七次全國人口普查數(shù)據(jù)分析與視化7.2010—2020年這10年間人口增長數(shù)據(jù)對比分析與可視化讀取數(shù)據(jù)p2010=pd.read_excel(r'data\2010年各地區(qū)分性別的人口數(shù)據(jù).xlsx',header=0)查看部分數(shù)據(jù)p2010.head()對2010年各地區(qū)人口性別的數(shù)據(jù)進行預處理p2010=p2010[['Unnamed:0','合計']]p2010.rename(columns={'Unnamed:0':'地區(qū)','合計':'2010年人口數(shù)'},inplace=True)p2010['地區(qū)']=p2010['地區(qū)'].str.replace('','')對2020年各地區(qū)人口數(shù)據(jù)進行預處理population1=population1[population1['地區(qū)']!='現(xiàn)役軍人']population1.rename(columns={'人口數(shù)':'2020年人口數(shù)'},inplace=True)第七次全國人口普查數(shù)據(jù)分析與視化合并p2010和population1兩個數(shù)據(jù)集與提取所需的數(shù)據(jù)population2=population1.merge(right=p2010,how='left',left_on='地區(qū)',right_on='地區(qū)')population=population2[population2['地區(qū)']!='全國']計算各地區(qū)10年的人口增長數(shù)據(jù)population['10年增長人數(shù)']=population['2020年人口數(shù)']-population['2010年人口數(shù)']按“10年增長人數(shù)”列對人口數(shù)據(jù)進行排序與查看部分數(shù)據(jù)population.sort_values('10年增長人數(shù)',ascending=False,inplace=True)population.head()查看10年人口數(shù)量的增減情況population['group']=population['10年增長人數(shù)']>0第七次全國人口普查數(shù)據(jù)分析與視化繪制各地區(qū)10年增長人數(shù)的柱形圖population.plot.bar(x='地區(qū)',y='10年增長人數(shù)',color=population.group.map({True:'#61BDCD',False:'#E9967A'}))plt.legend('')plt.show()圖1-5各地區(qū)10年增長人數(shù)的柱形圖第七次全國人口普查數(shù)據(jù)分析與視化8.2020年各地區(qū)15歲及以上人口平均受教育年限數(shù)據(jù)分析與可視化讀取數(shù)據(jù)df_edu_time=pd.read_excel(r"data\2020年和2010年各地區(qū)15歲及以上人口平均受教育年限.xlsx")查看部分數(shù)據(jù)df_edu_time.head()定義列名稱df_edu_time.columns=["地區(qū)","2020年平均年限","2010年平均年限"]查看是否存在缺失值df_edu_time.isnull().sum()刪除“地區(qū)”列中多余的空格df_edu_time['地區(qū)']=df_edu_time['地區(qū)'].str.replace('','')提取數(shù)據(jù)集中部分列的部分行數(shù)據(jù)df_edu_time=df_edu_time.iloc[1:,:]df_edu_time=df_edu_time.loc[1:,:]第七次全國人口普查數(shù)據(jù)分析與視化重置索引df_edu_time.set_index("地區(qū)",inplace=True)繪制2020年各地區(qū)15歲及以上人口平均受教育年限對比的柱形圖df_time_2020=df_edu_time["2020年平均年限"].values.tolist()bar1=(Bar(init_opts=opts.InitOpts(width="1000px",height="600px")).add_xaxis(district).add_yaxis("2020年平均受教育年限",df_time_2020).set_global_opts(title_opts=opts.TitleOpts(title="2020年各地區(qū)15歲及以上人口平均受教育年限對比"),xaxis_opts=opts.AxisOpts(name="地區(qū)"),yaxis_opts=opts.AxisOpts(name="平均受教育年限"),tooltip_opts=opts.TooltipOpts(is_show=True,trigger="axis",axis_pointer_type="cross")).set_series_opts(label_opts=opts.LabelOpts(is_show=True)))bar1.render_notebook()第七次全國人口普查數(shù)據(jù)分析與視化圖1-62020年各地區(qū)15歲及以上人口平均受教育年限對比的柱形圖第七次全國人口普查數(shù)據(jù)分析與視化9.2020年全國人口畫像2020年全國人口畫像對應的代碼及繪制的圖形詳見本書配套的電子活頁1-4。10.繪制全國各地區(qū)人口分布地圖繪制全國各地區(qū)人口分布地圖,對應的代碼詳見本書配套的電子活頁1-5。11.全國各地區(qū)流動人口數(shù)據(jù)分析與可視化讀取全國各地區(qū)流動人口字符串數(shù)據(jù)掃描二維碼在線瀏覽電子活頁1-7“讀取全國各地區(qū)流動人口字符串數(shù)據(jù)”中的代碼及輸出的結(jié)果。第七次全國人口普查數(shù)據(jù)分析與視化對數(shù)據(jù)集列名稱進行重命名floating_pop_df=floating_pop_df.rename({"省內(nèi)":"省內(nèi)人戶分離人口數(shù)","省外":"省外流動人口數(shù)"},

axis=1)[["省內(nèi)人戶分離人口數(shù)","省外流動人口數(shù)","地區(qū)"]].set_index("地區(qū)")合并多個數(shù)據(jù)集df=pd.concat([df_region_age,df_district,

df_edu,

floating_pop_df],axis=1)df.head()第七次全國人口普查數(shù)據(jù)分析與視化計算省內(nèi)與省外人戶分離人口比例在處理數(shù)據(jù)的時候,有時需要根據(jù)某個列計算得到一個新列,以便后續(xù)使用。df=df.assign(inside_rate=df["省內(nèi)人戶分離人口數(shù)"]/df["人口數(shù)"],outside_rate=df["省外流動人口數(shù)"]/df["人口數(shù)"],floating_rate=(df["省內(nèi)人戶分離人口數(shù)"]+df["省外流動人口數(shù)"])/df["人口數(shù)"])="地區(qū)"df.head()第七次全國人口普查數(shù)據(jù)分析與視化繪制各地區(qū)之間的年齡結(jié)構(gòu)層次聚類圖掃描二維碼在線瀏覽電子活頁1-8“繪制各地區(qū)之間的年齡結(jié)構(gòu)層次聚類圖”中的代碼及繪制的圖形。fromscipy.clusterimporthierarchygdf=df.assign(group=hierarchy.cut_tree(model,3)+1).sort_values("group")基于層次聚類圖的第三層將各地區(qū)分為3組繪制全國各地區(qū)人口年齡結(jié)構(gòu)分組地圖繪制全國各地區(qū)人口年齡結(jié)構(gòu)分組地圖,對應的代碼詳見本書配套的電子活頁1-6。第七次全國人口普查數(shù)據(jù)分析與視化繪制不同組平均人口年齡結(jié)構(gòu)柱形圖掃描二維碼在線瀏覽電子活頁1-9“繪制不同組平均人口年齡結(jié)構(gòu)柱形圖”中的代碼及繪制的圖形。column_name_map={"0—14歲":"a14-","15—59歲":"a15_59","60歲及以上":"a60+"}gdf=gdf.rename(column_name_map,axis=1)gdf[["a14-","a15_59","a60+"]]=gdf[["a14-","a15_59","a60+"]]/100對數(shù)據(jù)集gdf中各年齡段列名稱進行重命名第七次全國人口普查數(shù)據(jù)分析與視化分析省外流動人口對人口年齡結(jié)構(gòu)的影響alt.Chart(gdf.reset_index()).mark_point().encode(alt.Y("a15_59",scale=alt.Scale(domain=[0.5,0.7])),x="省外流動人口數(shù)",color="group:N",tooltip=["地區(qū):O",

"省外流動人口數(shù):Q",

"a15_59:Q"]).properties(title="省外流動人口數(shù)與15歲到59歲之間人口年齡結(jié)構(gòu)比例的關(guān)系")圖1-7省外流動人口數(shù)與15歲到59歲之間人口年齡結(jié)構(gòu)比例的關(guān)系圖第七次全國人口普查數(shù)據(jù)分析與視化獲取全國各地區(qū)的2021年人均GDP數(shù)據(jù)gdp_data_path=r"data\2020-2021年人均GDP.xlsx"gdp_raw_df=pd.read_excel(gdp_data_path)gdp_df=gdp_raw_df.loc[:,["地區(qū)","2021年人均GDP"]]#GDP的單位:億元gdp_df["地區(qū)"]=gdp_df["地區(qū)"].map(parse_region)df1=pd.concat([df,gdp_df.set_index("地區(qū)")],axis=1)合并兩個數(shù)據(jù)集corr=df1.drop(["省內(nèi)人戶分離人口數(shù)","省外流動人口數(shù)","2020年占比","2010年占比"],axis=1).corr().round(2)corr.style.background_gradient(cmap='YlOrRd')繪制熱力圖,通過相關(guān)系數(shù)來分析人口年齡結(jié)構(gòu)的影響因素第七次全國人口普查數(shù)據(jù)分析與視化圖1-8人口年齡結(jié)構(gòu)影響因素的熱力圖【任務描述】根據(jù)地理位置通常將31個省、自治區(qū)、直轄市劃分為以下7個大區(qū):華東(包括山東、江蘇、安徽、浙江、福建、上海)、華南(包括廣東、廣西、海南)、華中(包括湖北、湖南、河南、江西)、華北(包括北京、天津、河北、山西、內(nèi)蒙古)、西北(包括寧夏、新疆、青海、陜西、甘肅)、西南(包括四川、云南、貴州、西藏、重慶)、東北(包括遼寧、吉林、黑龍江)。Excel文件“2011—2021各地區(qū)GDP.xlsx”提供了全國31個省、自治區(qū)、直轄市2011—2021年的GDP數(shù)據(jù)。針對這些GDP數(shù)據(jù)進行以下分析與可視化操作。(1)查看歷年GDP最低和最高的地區(qū)。(2)查看近5年GDP增速最快和最慢的地區(qū)。(3)查看廣東省和湖北省近5年的GDP增速(4)繪制條形圖對比2020年各地區(qū)GDP增速。(5)對比分析2020年和2021年全國各地區(qū)的GDP。【任務1-2】2011—2021年全國各大區(qū)的GDP數(shù)據(jù)分析與可視化【任務描述】(6)分析2020年、2021年各大區(qū)的GDP。(7)分析2020年、2021年全國各地區(qū)的GDP和人均GDP。(8)繪制柱形圖、條形圖、地圖對2021年全國各地區(qū)的GDP數(shù)據(jù)進行可視化分析。(9)繪制輪播地圖對2011—2021年全國各地區(qū)的GDP數(shù)據(jù)進行可視化分析?!救蝿諏崿F(xiàn)】在JupyterNotebook開發(fā)環(huán)境中創(chuàng)建tc01-02.ipynb,然后在單元格中編寫代碼并輸出對應的結(jié)果。【任務1-2】2011—2021年全國各大區(qū)的GDP數(shù)據(jù)分析與可視化2011—2021年全國各大區(qū)的GDP數(shù)據(jù)分析與可視化導入模塊1.導入模塊與讀取數(shù)據(jù)frompyecharts.globalsimportChartType讀取數(shù)據(jù)df=pd.read_excel(r'data\2011-2021各地區(qū)GDP.xlsx')查看數(shù)據(jù)集中的部分數(shù)據(jù)df.head()2011—2021年全國各大區(qū)的GDP數(shù)據(jù)分析與可視化2.查看歷年GDP最低和最高的地區(qū)la=[]lb=[]foriinrange(1,df.shape[1]):x1=df[df.iloc[:,i]==df.iloc[:,i].min()]['地區(qū)'].valuesy1=df[df.iloc[:,i]==df.iloc[:,i].max()]['地區(qū)'].valuesla.extend(x1)lb.extend(y1)print(la,sep='\r')print(lb,sep='\r')2011—2021年全國各大區(qū)的GDP數(shù)據(jù)分析與可視化3.查看近5年GDP增速最快和最慢的地區(qū)獲取近6年各地區(qū)的GDP數(shù)據(jù)并進行轉(zhuǎn)置df2=df.iloc[:,:7].set_index('地區(qū)').T計算近5年各地區(qū)GDP的增速df3=(df2/df2.shift(-1)-1)*100查看2021年GDP增速最快的地區(qū)df3.iloc[0][df3.iloc[0]==df3.iloc[0].max()]查看近5年GDP增速最快和最慢的地區(qū)lc=[]ld=[]foriinrange(0,df3.shape[0]-1):x2=df3.iloc[i][df3.iloc[i]==df3.iloc[i].max()].index[0]y2=df3.iloc[i][df3.iloc[i]==df3.iloc[i].min()].index[0]lc.append(x2)ld.append(y2)print(lc,sep='\r')print(ld,sep='\r')創(chuàng)建用戶賬戶輸出近5年GDP增速最快和最慢的地區(qū)yr=range(2021,2016,-1)foriinrange(5):print(yr[i],'GDP增速最快:',lc[i])print('*'*28)foriinrange(5):print(yr[i],'GDP增速最慢:',ld[i])2011—2021年全國各大區(qū)的GDP數(shù)據(jù)分析與可視化4.查看廣東省和湖北省近5年的GDP增速查看廣東省近5年的GDP增速num=df3.columns.tolist().index('廣東省')df3.iloc[:,num]獲取2020年各地區(qū)GDP增速數(shù)據(jù)df_a=df3.head(2)df_2020=df_a.tail(-1)df_b=pd.DataFrame(df_2020.iloc[0].sort_values())df_b查看湖北省近5年的GDP增速num=df3.columns.tolist().index('湖北省')df3.iloc[:,num]5.繪制條形圖對比2020年各地區(qū)GDP增速繪制2020年各地區(qū)GDP增速條形圖plt.figure(dpi=100)df_b.plot.barh(figsize=(20,15),color='r',alpha=0.5)2011—2021年全國各大區(qū)的GDP數(shù)據(jù)分析與可視化圖1-92020年各地區(qū)GDP增速條形圖2011—2021年全國各大區(qū)的GDP數(shù)據(jù)分析與可視化6.對比分析2020年和2021年全國各地區(qū)的GDP獲取2020年和2021年全國各地區(qū)的GDPdf4=pd.read_excel(r'data\2020-2021年全國各地區(qū)GDP.xlsx',usecols=['地區(qū)','2020年GDP','2021年GDP'])設置數(shù)據(jù)集的索引列并對數(shù)據(jù)集進行排序df4=df4.set_index('地區(qū)')df4=df4.sort_values(by='2021年GDP',ascending=False)查看2021年GDP排名前5位的地區(qū)df4.head()2011—2021年全國各大區(qū)的GDP數(shù)據(jù)分析與可視化繪制2021年和2020年全國各地區(qū)GDP柱形圖df4.plot.bar(figsize=(16,8))圖1-102021年和2020年全國各地區(qū)GDP柱形圖2011—2021年全國各大區(qū)的GDP數(shù)據(jù)分析與可視化7.分析2020年各大區(qū)的GDP獲取2020年各地區(qū)GDP數(shù)據(jù)并進行轉(zhuǎn)置data2=pd.DataFrame(dict(zip(df['地區(qū)'].values,df.loc[:,'2020年'].values)),index=range(1)).T.reset_index()對數(shù)據(jù)集的列進行重命名data2.columns=['地區(qū)','2020年GDP']對數(shù)據(jù)集“地區(qū)”列數(shù)據(jù)進行規(guī)范化處理正則表達式中字符“\W\d”表示匹配以1個特殊字符開頭,后接1個0~9的任意數(shù)字的字符串。

importredefparse_region(x):x1=re.sub(r"[\W\d]","",x)ifx1[:3]in["黑龍江","內(nèi)蒙古"]:returnx1[:3]else:returnx1[:2]data2['地區(qū)']=data2['地區(qū)'].str.replace('','')data2["地區(qū)"]=data2["地區(qū)"].map(parse_region) 2011—2021年全國各大區(qū)的GDP數(shù)據(jù)分析與可視化合并兩個數(shù)據(jù)集data_2=data.merge(right=data2,how='left',left_on='地區(qū)',right_on='地區(qū)')data_2.head()計算2020年各大區(qū)GDPdata2_gdp=data_2.groupby(by='大區(qū)').agg({'地區(qū)':'count','2020年GDP':'sum'})data2_gdp.columns=['省市區(qū)數(shù)量','2020年各大區(qū)GDP']data2_gdp=data2_gdp.sort_values(by='2020年各大區(qū)GDP',ascending=False)data2_gdp=data2_gdp.reset_index()data2_gdp2011—2021年全國各大區(qū)的GDP數(shù)據(jù)分析與可視化繪制2020年和2021年各大區(qū)GDP柱形圖

fig=plt.figure(figsize=(10,5),dpi=100)axes1=fig.add_subplot(1,2,1)axes2=fig.add_subplot(1,2,2)axes1.set_ylim([0,350000])axes1.bar(data2_gdp['大區(qū)'],

data2_gdp['2020年各大區(qū)GDP'])axes2.bar(data_gdp['大區(qū)'],data_gdp['各大區(qū)GDP'])圖1-112020年和2021年各大區(qū)GDP柱形圖2011—2021年全國各大區(qū)的GDP數(shù)據(jù)分析與可視化8.分析2021年各大區(qū)的GDP從數(shù)據(jù)集中獲取2021年各地區(qū)GDP數(shù)據(jù)data=pd.DataFrame(df4['2021年GDP'])重置數(shù)據(jù)集的索引data=data.reset_index()在數(shù)據(jù)集中增加“大區(qū)”列,并設置初始值為0data['大區(qū)']=[0]*len(data)刪除數(shù)據(jù)集中“地區(qū)”列數(shù)據(jù)中的空格data['地區(qū)']=data['地區(qū)'].replace('','')2011—2021年全國各大區(qū)的GDP數(shù)據(jù)分析與可視化根據(jù)各省市區(qū)隸屬的大區(qū)設置數(shù)據(jù)集中“大區(qū)”列的值dq1=data[data['地區(qū)'].isin(['山東','江蘇','安徽','浙江','福建','上海'])]['大區(qū)'].index.tolist()data.iloc[dq1,2]='華東'dq2=data[data['地區(qū)'].isin(['廣東','廣西','海南'])]['大區(qū)'].index.tolist()data.iloc[dq2,2]='華南'dq3=data[data['地區(qū)'].isin(['湖北','湖南','河南','江西'])]['大區(qū)'].index.tolist()data.iloc[dq3,2]='華中'dq4=data[data['地區(qū)'].isin(['北京','天津','河北','山西','內(nèi)蒙古'])]['大區(qū)'].index.tolist()data.iloc[dq4,2]='華北'dq5=data[data['地區(qū)'].isin(['寧夏','新疆','青海','陜西','甘肅'])]['大區(qū)'].index.tolist()data.iloc[dq5,2]='西北'dq6=data[data['地區(qū)'].isin(['四川','云南','貴州','西藏','重慶'])]['大區(qū)'].index.tolist()data.iloc[dq6,2]='西南'dq7=data[data['地區(qū)'].isin(['黑龍江','吉林','遼寧'])]['大區(qū)'].index.tolist()data.iloc[dq7,2]='東北'data.head()2011—2021年全國各大區(qū)的GDP數(shù)據(jù)分析與可視化圖1-122021年各大區(qū)GDP柱形圖分大區(qū)統(tǒng)計各省市區(qū)2021年GDP數(shù)據(jù)data_gdp=data.groupby(by='大區(qū)').agg({'地區(qū)':'count','2021年GDP':'sum'})data_gdp=data_gdp.sort_values(by='2021年GDP',ascending=False)data_gdp.columns=['省市區(qū)數(shù)量','各大區(qū)GDP']data_gdp=data_gdp.reset_index()data_gdp繪制2021年各大區(qū)GDP柱形圖plt.figure(figsize=(10,5),dpi=100)plt.bar(data_gdp['大區(qū)'],data_gdp['各大區(qū)GDP'])2011—2021年全國各大區(qū)的GDP數(shù)據(jù)分析與可視化9.分析2020年全國各地區(qū)的GDP和人均GDP獲取2020年全國各地區(qū)的GDP和人均GDP數(shù)據(jù)#gdp2020=gdp[['地區(qū)','2020年GDP','2020年人均GDP']]gdp2020=gdp[gdp.columns[0:3]].copy()

#dp2020['2020年人均GDP']=gdp2020['2020年人均GDP'].astype('float')gdp2020=gdp2020.set_index('地區(qū)')gdp2020.head()繪制2020年全國各地區(qū)的GDP和人均GDP柱形圖gdp2020.sort_values(by='2020年人均GDP',ascending=False).plot.bar(figsize=(16,8))2011—2021年全國各大區(qū)的GDP數(shù)據(jù)分析與可視化圖1-132020年全國各地區(qū)的GDP和人均GDP柱形圖2011—2021年全國各大區(qū)的GDP數(shù)據(jù)分析與可視化10.分析2021年全國各地區(qū)的GDP和人均GDP讀取數(shù)據(jù)gdp=pd.read_excel(r'data\2020-2021年全國各地區(qū)GDP.xlsx')繪制2021年全國各地區(qū)GDP和人均GDP的堆疊柱形圖掃描二維碼在線瀏覽電子活頁1-11“繪制2021年全國各地區(qū)GDP和人均GDP的堆疊柱形圖”中的代碼及繪制的圖形。繪制2021年全國各地區(qū)GDP分布地圖繪制2021年全國各地區(qū)GDP分布地圖,對應的代碼詳見本書配套的電子活頁1-7。2011—2021年全國各大區(qū)的GDP數(shù)據(jù)分析與可視化11.對2021年全國各地區(qū)的GDP數(shù)據(jù)進行可視化分析讀取數(shù)據(jù)datas=pd.read_excel(r'data\2011-2021各地區(qū)GDP.xlsx')繪制2021年全國各地區(qū)GDP柱形圖b1=(Bar().add_xaxis(datas['地區(qū)'].values.tolist()).add_yaxis('2021年全國各地區(qū)GDP(億元)',

datas['2021年'].values.tolist()).set_global_opts(title_opts=opts.TitleOpts(title='2021年全國各地區(qū)

GDP(億元)'),

datazoom_opts=[opts.DataZoomOpts(),

opts.DataZoomOpts(type_='inside')],))b1.render_notebook()圖1-142021年全國各地區(qū)GDP柱形圖2011—2021年全國各大區(qū)的GDP數(shù)據(jù)分析與可視化繪制2021年全國各地區(qū)GDP條形圖掃描二維碼在線瀏覽電子活頁1-12“繪制2021年全國各地區(qū)GDP條形圖”中的代碼及繪制的圖形。繪制2021年全國各地區(qū)GDP地圖在pyecharts中可使用Map類繪制地圖,并且通過不同顏色展現(xiàn)不同的數(shù)據(jù)。datas['地區(qū)'].replace(regex=True,inplace=True,to_replace=['省','市','維吾爾自治區(qū)','回族自治區(qū)','壯族自治區(qū)','自治

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論