Python數(shù)據(jù)分析與可視化典型項(xiàng)目實(shí)戰(zhàn)模塊三-房源數(shù)據(jù)分析_第1頁
Python數(shù)據(jù)分析與可視化典型項(xiàng)目實(shí)戰(zhàn)模塊三-房源數(shù)據(jù)分析_第2頁
Python數(shù)據(jù)分析與可視化典型項(xiàng)目實(shí)戰(zhàn)模塊三-房源數(shù)據(jù)分析_第3頁
Python數(shù)據(jù)分析與可視化典型項(xiàng)目實(shí)戰(zhàn)模塊三-房源數(shù)據(jù)分析_第4頁
Python數(shù)據(jù)分析與可視化典型項(xiàng)目實(shí)戰(zhàn)模塊三-房源數(shù)據(jù)分析_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

模塊三房源數(shù)據(jù)分析Python數(shù)據(jù)分析與可視化典型項(xiàng)目實(shí)戰(zhàn)(微課版)【任務(wù)描述】Excel文件“house.xlsx”共有3萬多行、14列數(shù)據(jù),列名分別為:產(chǎn)權(quán)、關(guān)注、區(qū)域、單價(jià)、小區(qū)、年限、總價(jià)/萬元、戶型、房屋編碼、掛牌時(shí)間、朝向、樓層、裝修情況、面積。(其中,關(guān)注為關(guān)注數(shù)量的簡稱。)其中“朝向”列數(shù)據(jù)有67種,“戶型”列數(shù)據(jù)有42種,“區(qū)域”列數(shù)據(jù)有14種,“裝修情況”列數(shù)據(jù)有4種,這些數(shù)據(jù)后期需要進(jìn)行清洗、整理和提取數(shù)值特征。數(shù)據(jù)清洗建議如下。【任務(wù)實(shí)現(xiàn)】在JupyterNotebook開發(fā)環(huán)境中創(chuàng)建tc03-01.ipynb,然后在單元格中編寫代碼并輸出對應(yīng)的結(jié)果?!救蝿?wù)3-1】杭州市在售房源數(shù)據(jù)分析與可視化杭州市在售房源數(shù)據(jù)分析與可視化1.導(dǎo)入模塊與讀取數(shù)據(jù)導(dǎo)入模塊importdatetimeimportcalendarimportbrewer2mplimportcollectionsfromjiebaimportpossegaspsgimportwarningswarnings.filterwarnings('ignore')讀取數(shù)據(jù)并進(jìn)行瀏覽house_df=pd.read_excel(r"data\house.xlsx")data=house_df.copy()#瀏覽數(shù)據(jù)data.head()杭州市在售房源數(shù)據(jù)分析與可視化2.?dāng)?shù)據(jù)預(yù)處理檢查缺失值總數(shù)量data.isnull().values.sum()處理“區(qū)域”列數(shù)據(jù)deflocation(x):if"臨安"inx:return"臨安市"elif"上城"inx:return"上城區(qū)"elif"下城"inx:return"下城區(qū)"elif"江干"inx:return"江干區(qū)"elif"拱墅"inx:return"拱墅區(qū)"elif"西湖"inx:return"西湖區(qū)"elif"濱江"inx:return"濱江區(qū)"elif"蕭山"inx:return"蕭山區(qū)"elif"余杭"inx:return"余杭區(qū)"elif"富陽"inx:return"富陽區(qū)"elif"錢塘"inx:return"錢塘新區(qū)"else:return"其他"data["地理位置"]=data["區(qū)域"].apply(location)檢查各列缺失值情況data.isnull().sum()刪除缺失值data.dropna(how="any",inplace=True)處理“產(chǎn)權(quán)”列數(shù)據(jù)data=data.loc[data["產(chǎn)權(quán)"]!="未知"]杭州市在售房源數(shù)據(jù)分析與可視化處理“單價(jià)”列數(shù)據(jù)data['單價(jià)'].head()查看各區(qū)在售房源總數(shù)量的代碼如下:data['地理位置'].value_counts()以下3種方法都可以去掉單位“元/平方米”提取單價(jià)數(shù)字。方法1:使用正則表達(dá)式取出其中的數(shù)字。data["單價(jià)"]=data["單價(jià)"].apply(lambdax:str(x)).str.findall("(\d+)").str[0].astype("float")方法2:使用“元”字進(jìn)行字符串分隔。data["單價(jià)"]=data["單價(jià)"].str.split("元").str[0]data["單價(jià)"]=data["單價(jià)"].astype("int64")方法3:使用“元”字在“單價(jià)”列中的位置獲取單價(jià)數(shù)字。data['單價(jià)']=data['單價(jià)'].str[:-5].astype('float32')杭州市在售房源數(shù)據(jù)分析與可視化處理“年限”列數(shù)據(jù)data["起建時(shí)間"]=data["年限"].str.split("/").str[0]data["建筑類型"]=data["年限"].str.split("/").str[1]瀏覽“建筑類型”列唯一值,代碼如下:data['建筑類型'].unique()輸出結(jié)果:array(['板樓','板塔結(jié)合','塔樓','暫無數(shù)據(jù)','平房'],dtype=object)去掉起建時(shí)間為“未知年建”和“建筑類型”為“暫無數(shù)據(jù)”的房源,代碼如下:data=data.loc[(data["起建時(shí)間"]!="未知年建")&(data["建筑類型"]!="暫無數(shù)據(jù)")]獲取“起建時(shí)間”年份數(shù)字的代碼如下:data["起建時(shí)間"]=data["起建時(shí)間"].str.extract("(\d+)").astype("int")計(jì)算“樓齡”并增加“樓齡”列的代碼如下:data["樓齡"]=2022-data["起建時(shí)間"]杭州市在售房源數(shù)據(jù)分析與可視化刪除數(shù)據(jù)集指定列中多余的數(shù)據(jù)data.drop(["年限","區(qū)域","房屋編碼"],axis=1,inplace=True)data.head()處理“戶型”列數(shù)據(jù)從“戶型”列數(shù)據(jù)提取“室數(shù)”和“廳數(shù)”,并分開存儲,代碼如下:data["室數(shù)"]=data["戶型"].str.findall("(\d)室(\d)廳").str[0].str[0].astype("int")data["廳數(shù)"]=data["戶型"].str.findall("(\d)室(\d)廳").str[0].str[1].astype("int")杭州市在售房源數(shù)據(jù)分析與可視化刪除數(shù)據(jù)集指定列中多余的數(shù)據(jù)data.drop(["年限","區(qū)域","房屋編碼"],axis=1,inplace=True)data.head()處理“戶型”列數(shù)據(jù)從“戶型”列數(shù)據(jù)提取“室數(shù)”和“廳數(shù)”,并分開存儲,代碼如下:data["室數(shù)"]=data["戶型"].str.findall("(\d)室(\d)廳").str[0].str[0].astype("int")data["廳數(shù)"]=data["戶型"].str.findall("(\d)室(\d)廳").str[0].str[1].astype("int")以下代碼也能從“戶型”列數(shù)據(jù)提取“室數(shù)”和“廳數(shù)”:data['室數(shù)']=data['戶型'].str[0].astype('int32')data['廳數(shù)']=data['戶型'].str[2].astype('int32')杭州市在售房源數(shù)據(jù)分析與可視化轉(zhuǎn)換“掛牌時(shí)間”列數(shù)據(jù)的數(shù)據(jù)類型data["掛牌時(shí)間"]=pd.to_datetime(data["掛牌時(shí)間"])處理“朝向”列數(shù)據(jù)觀察“朝向”列數(shù)據(jù),可以發(fā)現(xiàn)“朝向”主要分為以下幾種情況。單一朝向:“東”“南”“西”“北”“西南”“西北”“東南”“東北”等。兩種朝向:“南北”“南西”“北南”“東南”“東西”“西北”等。多種朝向:“東南北”“西西南南”“南西北”“南西北北”等。去除“朝向”列首、末端空格的代碼如下:data['朝向']=data['朝向'].str.strip()查看“朝向”列字?jǐn)?shù)的代碼如下:data['朝向'].str.len().value_counts()掃描二維碼在線瀏覽電子活頁3-1“定義將多種朝向簡化為單一朝向的函數(shù)orientation()”中的代碼。杭州市在售房源數(shù)據(jù)分析與可視化處理“樓層”列數(shù)據(jù)查看數(shù)據(jù)集行數(shù)的代碼如下:data.shape[0]輸出結(jié)果:27580重置行索引的代碼如下:data.reset_index()獲取“樓層”列中包含字符“/”的數(shù)據(jù)的行數(shù),代碼如下:data["樓層"].str.contains("/").sum()獲取“樓層”列中不包含字符“/”的數(shù)據(jù)的行數(shù),代碼如下:data.shape[0]-data["樓層"].str.contains("/").sum()輸出結(jié)果:27565輸出結(jié)果:15杭州市在售房源數(shù)據(jù)分析與可視化查看數(shù)據(jù)集中第1行、“樓層”列數(shù)據(jù)的數(shù)據(jù)類型是否為“str”,代碼如下:isinstance(data.iloc[0,:]["樓層"],str)輸出結(jié)果:True根據(jù)“樓層”列數(shù)據(jù)中“/”字符的位置分別提取“樓層位置”和“層數(shù)”數(shù)據(jù),代碼如下:data["樓層位置"]=data["樓層"].str.split("/").str[0]data["層數(shù)"]=data["樓層"].str.split("/").str[1]數(shù)據(jù)集中部分“樓層”列不包含字符“/”,即只包含層數(shù)信息,不包含樓層位置信息。針對不包含“/”字符的“樓層”列做進(jìn)一步處理,代碼如下:foriinrange(0,data.shape[0]):if('/'notindata.iloc[i,:]["樓層"]):data.loc[i,"樓層位置"]='其他'data.loc[i,"層數(shù)"]=data.iloc[i,:]["樓層"]由于“層數(shù)”列數(shù)據(jù)中可能會(huì)出現(xiàn)空值,空值無法轉(zhuǎn)換為int類型,需要?jiǎng)h除“層數(shù)”為空的行,獲取“層數(shù)”列中的非空值數(shù)據(jù)的代碼如下:data=data.loc[~(data["層數(shù)"].isnull())]杭州市在售房源數(shù)據(jù)分析與可視化從“層數(shù)”列數(shù)據(jù)中取出層數(shù)數(shù)字并將其轉(zhuǎn)換為“int32”數(shù)據(jù)類型,代碼如下:data["層數(shù)"]=data["層數(shù)"].str.extract(("(\d+)")).astype("int32")分析“層數(shù)”列數(shù)據(jù)的特征可以發(fā)現(xiàn):“層數(shù)”列數(shù)據(jù)第1個(gè)字為“共”,最后一個(gè)字為“層”,中間為1個(gè)或多個(gè)數(shù)字,使用以下代碼也可以實(shí)現(xiàn)從“層數(shù)”列數(shù)據(jù)中取出層數(shù)數(shù)字并將其轉(zhuǎn)換為“int32”數(shù)據(jù)類型。df1['層數(shù)']=data['層數(shù)'].str[1:-1].astype('int32')刪除“樓層”列數(shù)據(jù)的代碼如下:data=data.drop(["樓層"],axis=1)以下代碼也可以刪除“樓層”列數(shù)據(jù):deldata["樓層"]處理“裝修情況”列數(shù)據(jù)defdecoration(x):if"精裝"inx:return"精裝"elif"簡裝"inx:return"簡裝"elif"毛坯"inx:return"毛坯"else:return"其他"data["裝修情況"]=data["裝修情況"].apply(decoration)杭州市在售房源數(shù)據(jù)分析與可視化處理“面積”列數(shù)據(jù)方法1:使用lambda函數(shù)結(jié)合正則表達(dá)式提取“面積”數(shù)據(jù)中的數(shù)字和小數(shù)點(diǎn)。data["面積"]=data["面積"].apply(lambdax:str(x)).str.extract("([\d,.]+)").astype("float")方法2:使用正則表達(dá)式直接提取“面積”數(shù)據(jù)中的數(shù)字和小數(shù)點(diǎn)。data["面積"]=data["面積"].str.findall('[\d,.]+').str[0].astype('float')方法3:由于“面積”列數(shù)據(jù)都包含單位“平方米”,根據(jù)數(shù)字位置提取“面積”數(shù)據(jù)中的數(shù)字和小數(shù)點(diǎn)。data['面積'].str[:-2].astype('float')過濾異常數(shù)據(jù)將“總價(jià)/萬元”重命名為“總價(jià)”的代碼如下:data.rename(columns={"總價(jià)/萬元":"總價(jià)"},inplace=True)杭州市在售房源數(shù)據(jù)分析與可視化獲取房子總價(jià)大于50萬元和小于3000萬元的數(shù)據(jù)的代碼如下:data_=data.loc[(data["總價(jià)"]>50)&(data["總價(jià)"]<3000)]刪除“戶型”列包含“0室0廳”數(shù)據(jù)的行代碼如下:data=data.loc[data["戶型"]!="0室0廳"]重置索引的代碼如下:data.reset_index(drop=True,inplace=True)將處理好的數(shù)據(jù)存入文件“l(fā)ianjia.xlsx”中data.to_excel(r'data\lianjia.xlsx')杭州市在售房源數(shù)據(jù)分析與可視化3.?dāng)?shù)據(jù)分析與可視化計(jì)算相關(guān)系數(shù)與探索各數(shù)據(jù)之間的相關(guān)性corr=data.corr()corr繪制反映房源數(shù)據(jù)之間關(guān)系的熱力圖plt.figure(figsize=(8,6))sns.heatmap(corr,cmap='GnBu')plt.show()圖3-1反映房源數(shù)據(jù)之間關(guān)系的熱力圖杭州市在售房源數(shù)據(jù)分析與可視化對比分析杭州市各區(qū)房源數(shù)量count_area=data.groupby("地理位置")["關(guān)注"].count().sort_values(ascending=False)count_area=count_area.reset_index()count_area統(tǒng)計(jì)數(shù)據(jù)集中各區(qū)房源數(shù)據(jù)的行數(shù),代碼如下:繪制杭州市各區(qū)房源數(shù)量對比柱形圖之一的代碼如下所示。plt.figure(figsize=(8,6))ax=sns.barplot(count_area["地理位置"],count_area["關(guān)注"],palette='Greens_r')ax.set_title("杭州市各區(qū)房源數(shù)量對比")ax.set_xlabel('區(qū)域')ax.set_ylabel('房源數(shù)量')forindex,rowincount_area.iterrows():ax.text(,row['關(guān)注']+60,round(row['關(guān)注']),ha='center',fontsize=14)圖3-2杭州市各區(qū)房源數(shù)量對比柱形圖之一杭州市在售房源數(shù)據(jù)分析與可視化繪制杭州市各區(qū)房源數(shù)量對比柱形圖之二的代碼如下。count_house=data.groupby("地理位置")["關(guān)注"].count().sort_values(ascending=False)plt.figure(figsize=(10,5))sns.barplot(count_house.index,count_house)plt.title("杭州市各區(qū)房源數(shù)量對比",fontsize=14)plt.xlabel("區(qū)域",fontsize=12)plt.ylabel("房源數(shù)量",fontsize=12)plt.xticks(rotation=30,fontsize=12)forindex,rowincount_area.iterrows():plt.text(,row['關(guān)注']+40,round(row['關(guān)注']),ha='center',fontsize=14)plt.show()圖3-3杭州市各區(qū)房源數(shù)量對比柱形圖之二繪制杭州市各區(qū)房源數(shù)量對比地圖,對應(yīng)的代碼詳見本書配套的電子活頁3-1。杭州市在售房源數(shù)據(jù)分析與可視化對比分析杭州市各區(qū)房源平均總價(jià)total_price=data.groupby("地理位置")["總價(jià)"].mean().sort_values(ascending=False).reset_index()total_price計(jì)算杭州市各區(qū)房源平均總價(jià)的代碼如下:繪制杭州市各區(qū)房源平均總價(jià)對比柱形圖的代碼如下:plt.figure(figsize=(10,5))sns.barplot(total_price["地理位置"],y=total_price["總價(jià)"])plt.title("杭州市各區(qū)房源平均總價(jià)對比",fontsize=14)plt.ylabel("總價(jià)/萬元",fontsize=12)plt.xlabel("區(qū)域",fontsize=12)plt.xticks(rotation=30,fontsize=12)forindex,rowintotal_price.iterrows():plt.text(,row['總價(jià)']+3,round(row['總價(jià)']),ha='center',fontsize=14)plt.show()圖3-4杭州市各區(qū)房源平均總價(jià)對比柱形圖杭州市在售房源數(shù)據(jù)分析與可視化對比分析杭州市各區(qū)在售房源總價(jià)分布繪制杭州市各區(qū)在售房源總價(jià)分布柱形圖的代碼如下:data1=data.groupby("地理位置").sum().sort_values("總價(jià)",ascending=False)plt.figure(figsize=(12,5))plt.bar(data1.index,data1["總價(jià)"])plt.title("杭州市各區(qū)在售房源總價(jià)分布情況")fori,jinzip(data1.index,data1["總價(jià)"]):plt.text(i,j+20000,j,size=12,ha='center')圖3-5杭州市各區(qū)在售房源總價(jià)分布柱形圖掃描二維碼在線瀏覽電子活頁3-2“繪制杭州市各區(qū)房源總價(jià)分布箱形圖”中的代碼及繪制的圖形。杭州市在售房源數(shù)據(jù)分析與可視化繪制杭州市在售房源經(jīng)緯度分布散點(diǎn)圖的代碼如下:data_1=data[['地理位置','小區(qū)','單價(jià)','總價(jià)']]data_2=pd.read_csv(r"data/各小區(qū)經(jīng)緯度詳情.csv")data_2=data_2[['小區(qū)','lnt','lat']]#合并數(shù)據(jù)data_1_2=pd.merge(data_1,data_2,on="小區(qū)")plt.figure(figsize=(8,6))x=data_1_2["lnt"]y=data_1_2["lat"]plt.scatter(x,y,marker='o',s=10,#s:散點(diǎn)的大小c=data_1_2["總價(jià)"],alpha=0.8,)plt.grid()圖3-6杭州市在售房源經(jīng)緯度分布散點(diǎn)圖杭州市在售房源數(shù)據(jù)分析與可視化對比分析杭州市各區(qū)“總價(jià)值/總在售面積”情況下面使用系數(shù)“d”(總價(jià)值/總在售面積)進(jìn)行描述。data2=data.groupby("地理位置").sum()data2["rate"]=(data2["總價(jià)"]/data2["面積"]).round(2)data2=data2.sort_values(by="rate",ascending=False)plt.figure(figsize=(12,5))plt.bar(data2.index,data2["rate"].round(2))plt.title("杭州市各區(qū)在售房源系數(shù)d分布情況")fori,jinzip(data2.index,data2["rate"]):plt.text(i,j+0.05,j,size=12,ha='center')圖3-7杭州市各區(qū)在售房源系數(shù)d分布柱形圖杭州市在售房源數(shù)據(jù)分析與可視化price=data.groupby("地理位置")["單價(jià)"].mean().sort_values(ascending=False)plt.figure(figsize=(10,5))sns.barplot(price.index,price)plt.title("杭州市各區(qū)房源平均單價(jià)對比",fontsize=14)plt.ylabel("每平方米單價(jià)",fontsize=12)plt.xlabel("區(qū)域",fontsize=12)plt.xticks(rotation=30,fontsize=12)forindex,rowinprice.reset_index().iterrows():plt.text(,row.單價(jià)+500,round(row.單價(jià)),ha='center')plt.show()對比分析杭州市各區(qū)房源平均單價(jià)繪制杭州市各區(qū)房源平均單價(jià)對比柱形圖的代碼如下:圖3-8杭州市各區(qū)房源平均單價(jià)對比柱形圖掃描二維碼在線瀏覽電子活頁3-3“繪制杭州市各區(qū)房源平均單價(jià)對比柱形圖方法2”中的代碼及繪制的圖形。杭州市在售房源數(shù)據(jù)分析與可視化繪制杭州市房源均價(jià)排前10位的區(qū)的柱形圖,代碼如下:frommons.utilsimportJsCodetemp=data.groupby(['地理位置'])['單價(jià)'].mean().reset_index()data_pair=sorted([(row['地理位置'],round(row['單價(jià)'],1))for_,rowintemp.iterrows()],key=lambdax:x[1],reverse=True)[:10]bar=(Bar(init_opts=opts.InitOpts(theme='dark')).add_xaxis([x[0]forxindata_pair]).add_yaxis('住房均價(jià)',[x[1]forxindata_pair]).set_series_opts(label_opts=opts.LabelOpts(is_show=True,font_style='italic'),itemstyle_opts=opts.ItemStyleOpts(color=JsCode("""newecharts.graphic.LinearGradient(0,1,0,0,[{offset:0,color:'rgb(0,206,209)'},{offset:1,color:'rgb(218,165,32)'}])"""))).set_global_opts(title_opts=opts.TitleOpts(title="杭州市房源均價(jià)排前10位的區(qū)"),legend_opts=opts.LegendOpts(is_show=False),tooltip_opts=opts.TooltipOpts(formatter=':{c}萬元')))bar.render_notebook()圖3-9杭州市房源均價(jià)排前10位的區(qū)的柱形圖杭州市在售房源數(shù)據(jù)分析與可視化df=data.groupby("小區(qū)").mean()plt.figure(figsize=(12,5))n,bins,patches=plt.hist(x=df["單價(jià)"],bins='auto',alpha=0.7,rwidth=1)plt.grid(axis='y',alpha=0.75)plt.xlabel('平均單價(jià)')plt.ylabel('數(shù)量')plt.title('杭州市各小區(qū)在售房源平均單價(jià)直方圖')maxfreq=n.max()#設(shè)置y軸的上限plt.ylim(ymax=np.ceil(maxfreq/10)*10ifmaxfreq%10elsemaxfreq+10)對比分析杭州市各小區(qū)在售房源的均價(jià)和平均單價(jià)繪制杭州市各小區(qū)在售房源平均單價(jià)直方圖的代碼如下:掃描二維碼在線瀏覽電子活頁3-4“繪制杭州市在售房源均價(jià)排前10位的小區(qū)的柱形圖”中的代碼及繪制的圖形。杭州市在售房源數(shù)據(jù)分析與可視化圖3-10杭州市各小區(qū)在售房源平均單價(jià)直方圖杭州市在售房源數(shù)據(jù)分析與可視化attention_area=data.groupby("地理位置")["關(guān)注"].sum().sort_values(ascending=False).reset_index()attention_area對比分析杭州市各區(qū)房源關(guān)注數(shù)量統(tǒng)計(jì)杭州市各區(qū)房源關(guān)注數(shù)量的代碼如下:繪制杭州市各區(qū)房源關(guān)注數(shù)量對比圓環(huán)圖的代碼如下:pair1=[(row["地理位置"],row["關(guān)注"])fori,rowinattention_area.iterrows()]pie1=Pie(init_opts=opts.InitOpts(theme='light',width='800px',height='400px'))pie1.add("",pair1,radius=["35%","75%"])pie1.set_global_opts(title_opts=opts.TitleOpts(title="杭州市各區(qū)房源關(guān)注數(shù)量對比"),legend_opts=opts.LegendOpts(is_show=False))pie1.set_series_opts(label_opts=opts.LabelOpts(formatter=":qeakoyg%"))pie1.render_notebook()杭州市在售房源數(shù)據(jù)分析與可視化圖3-11杭州市各區(qū)房源關(guān)注數(shù)量對比圓環(huán)圖掃描二維碼在線瀏覽電子活頁3-5“繪制杭州市各區(qū)房源關(guān)注度對比柱形圖”中的代碼及繪制的圖形。杭州市在售房源數(shù)據(jù)分析與可視化data["戶型"]=data["室數(shù)"].astype("str")+"室"+data["廳數(shù)"].astype("str")+"廳"對比分析杭州市在售房源戶型的關(guān)注度將“室數(shù)”與“廳數(shù)”合并為“X室Y廳”的形式,代碼如下:繪制杭州市在售房源關(guān)注度排前10位的戶型柱形圖的代碼如下:house_type_attention=data.groupby("戶型")["關(guān)注"].sum().sort_values(ascending=False).reset_index()bar1=Bar(init_opts=opts.InitOpts(theme='wonderland',width='600px',height='400px'))bar1.add_xaxis(house_type_attention.head(10)["戶型"].to_list())bar1.add_yaxis("",house_type_attention.head(10)["關(guān)注"].to_list())bar1.set_series_opts(label_opts=opts.LabelOpts(is_show=True))bar1.set_global_opts(title_opts=opts.TitleOpts(title="杭州市在售房源關(guān)注度排前10位的戶型"),xaxis_opts=opts.AxisOpts(axislabel_opts={"interval":"0"}))bar1.render_notebook()杭州市在售房源數(shù)據(jù)分析與可視化圖3-12杭州市在售房源關(guān)注度排前10位的戶型柱形圖掃描二維碼在線瀏覽電子活頁3-6“繪制杭州市在售房源關(guān)注度排前10位的戶型柱形圖方法2”中的代碼及繪制的圖形。杭州市在售房源數(shù)據(jù)分析與可視化繪制杭州市在售房源戶型分布餅圖的代碼如下:temp=data.groupby(['戶型'])['面積'].count().reset_index()data_pair=sorted([(row['戶型'],row['面積'])for_,rowintemp.iterrows()],key=lambdax:x[1],reverse=True)[:10]pie=(Pie(init_opts=opts.InitOpts(theme='dark')).add('',data_pair,radius=["30%","75%"],rosetype="radius").set_global_opts(title_opts=opts.TitleOpts(title="杭州市在售房源的戶型分布"),legend_opts=opts.LegendOpts(is_show=False),).set_series_opts(label_opts=opts.LabelOpts(formatter=":6umgcyc%")))pie.render_notebook()杭州市在售房源數(shù)據(jù)分析與可視化圖3-13杭州市在售房源戶型分布餅圖掃描二維碼在線瀏覽電子活頁3-7“繪制杭州市在售房源不同窗戶朝向關(guān)注度圓環(huán)圖”中的代碼及繪制的圖形。對比分析杭州市在售房源不同窗戶朝向關(guān)注度杭州市在售房源數(shù)據(jù)分析與可視化對比分析杭州市在售房源不同產(chǎn)權(quán)的關(guān)注度繪制杭州市在售房源不同產(chǎn)權(quán)的關(guān)注度對比圓環(huán)圖的代碼如下:property_right_attention=data.groupby("產(chǎn)權(quán)")["關(guān)注"].sum().sort_values(ascending=False).reset_index()pair6=[(row["產(chǎn)權(quán)"],row["關(guān)注"])fori,rowinproperty_right_attention.iterrows()]pie2=Pie(init_opts=opts.InitOpts(theme='macarons',width='800px',height='400px'))pie2.add('',pair6,radius=["35%","75%"])pie2.set_global_opts(title_opts=opts.TitleOpts(title="不同產(chǎn)權(quán)的關(guān)注度對比"),legend_opts=opts.LegendOpts(is_show=True))pie2.set_series_opts(label_opts=opts.LabelOpts(formatter=":4k8k6qw%"))pie2.render_notebook()圖3-14杭州市在售房源不同產(chǎn)權(quán)的關(guān)注度對比圓環(huán)圖杭州市在售房源數(shù)據(jù)分析與可視化對比分析杭州市在售房源樓層位置對關(guān)注度的影響將“樓層位置”根據(jù)設(shè)置的范圍規(guī)則(每5層設(shè)置一個(gè)區(qū)間)劃分層數(shù)范圍,代碼如下:cut_range=[xforxinrange(5,61,5)]cut_name=[str(cut_range[i])+"~"+str(cut_range[i+1])+"層"foriinrange(11)]data["層數(shù)范圍"]=pd.cut(data["層數(shù)"],cut_range,labels=cut_name)繪制杭州市在售房源不同樓層的關(guān)注度對比柱形圖的代碼如下:floor_attention=data.groupby("層數(shù)范圍")["關(guān)注"].sum().sort_values(ascending=False).reset_index()bar2=Bar(init_opts=opts.InitOpts(theme='vintage',width='600px',height='400px'))bar2.add_xaxis(floor_attention["層數(shù)范圍"].to_list())bar2.add_yaxis("關(guān)注度",floor_attention["關(guān)注"].to_list())bar2.set_series_opts(label_opts=opts.LabelOpts(is_show=True))bar2.set_global_opts(title_opts=opts.TitleOpts(title="不同樓層的關(guān)注度對比"),xaxis_opts=opts.AxisOpts(axislabel_opts={"interval":"0","rotate":45}))bar2.render_notebook()杭州市在售房源數(shù)據(jù)分析與可視化對比分析杭州市在售房源裝修情況對關(guān)注度的影響繪制杭州市在售房源不同裝修情況的關(guān)注度對比條形圖的代碼如下:decoration_attention=data.groupby("裝修情況")["關(guān)注"].sum().sort_values(ascending=False).reset_index()bar3=Bar(init_opts=opts.InitOpts(theme='westeros',width='600px',height='275px'))bar3.add_xaxis(decoration_attention["裝修情況"].to_list())bar3.add_yaxis("關(guān)注度",decoration_attention["關(guān)注"].to_list())bar3.set_series_opts(label_opts=opts.LabelOpts(is_show=True,position='right'))bar3.set_global_opts(title_opts=opts.TitleOpts(title="不同裝修情況的關(guān)注度對比"),xaxis_opts=opts.AxisOpts(axislabel_opts={"interval":"0"}))bar3.reversal_axis()bar3.render_notebook()掃描二維碼在線瀏覽電子活頁3-8“繪制杭州市在售房源不同裝修情況關(guān)注度餅圖”中的代碼及繪制的圖形。杭州市在售房源數(shù)據(jù)分析與可視化對比分析杭州市各區(qū)房源平均面積繪制杭州市各區(qū)房源平均面積條形圖的代碼如下:size_district=data.groupby('地理位置')['面積'].mean().sort_values(ascending=True).reset_index()bar3=Bar(init_opts=opts.InitOpts(theme='vintage',width='800px',height='600px'))bar3.add_xaxis(size_district['地理位置'].to_list())bar3.add_yaxis("平均面積",round(size_district['面積'],2).to_list())bar3.set_series_opts(label_opts=opts.LabelOpts(is_show=True,position='right'))bar3.set_global_opts(title_opts=opts.TitleOpts("杭州市各區(qū)房源平均面積對比"),xaxis_opts=opts.AxisOpts(axislabel_opts={'interval':"0"}))bar3.reversal_axis()bar3.render_notebook()杭州市在售房源數(shù)據(jù)分析與可視化圖3-17杭州市各區(qū)房源平均面積對比條形圖杭州市在售房源數(shù)據(jù)分析與可視化對比分析杭州市各區(qū)房源面積分布和房屋總價(jià)-面積關(guān)系繪制杭州市各區(qū)房源面積分布圖和房屋總價(jià)-面積關(guān)系散點(diǎn)圖的代碼如下:f,[ax1,ax2]=plt.subplots(1,2,figsize=(18,6))sns.distplot(data['面積'],ax=ax1,rug=True,bins=20)ax1.set_title('杭州市各區(qū)房源面積分布',fontsize=12)ax1.tick_params(labelsize=14)sns.regplot(x='面積',y='總價(jià)',data=data,ax=ax2)ax2.set_title('房屋總價(jià)和面積關(guān)系',fontsize=12)ax2.tick_params(labelsize=14)ax2.set_xlabel('房屋面積/m2',fontsize=12)ax2.set_ylabel('房屋總價(jià)/萬元',fontsize=12)plt.show()掃描二維碼在線瀏覽電子活頁3-9“繪制杭州市在售房源總價(jià)-面積散點(diǎn)圖”中的代碼及繪制的圖形。杭州市在售房源數(shù)據(jù)分析與可視化圖3-18杭州市各區(qū)房源面積分布圖和房屋總價(jià)-面積關(guān)系散點(diǎn)圖杭州市在售房源數(shù)據(jù)分析與可視化對比分析杭州市在售房源面積-單價(jià)關(guān)系繪制杭州市在售房源面積-單價(jià)關(guān)系散點(diǎn)圖的代碼如下:plt.figure(figsize=(12,6))x=data["單價(jià)"]y=data["面積"]plt.scatter(x,y,marker='o',s=10,c=x,alpha=0.8,)plt.xlabel('單價(jià)')plt.ylabel('面積')plt.grid()plt.title("杭州市在售房源面積-單價(jià)關(guān)系圖")圖3-19杭州市在售房源面積-單價(jià)關(guān)系散點(diǎn)圖杭州市在售房源數(shù)據(jù)分析與可視化對比分析杭州市在售房源掛牌時(shí)間和建造時(shí)間分布情況繪制杭州市2020—2022年在售房源掛牌時(shí)間分布情況折線圖的代碼如下:dd=data.groupby("掛牌時(shí)間").count()["地理位置"]dd=dd["2020":"2022"]plt.figure(figsize=(12,6))plt.title("杭州市在售房源掛牌時(shí)間分布情況")plt.xticks(rotation=30,fontsize=12)plt.plot(dd.index,dd)圖3-20杭州市2020—2022年在售房源掛牌時(shí)間分布情況折線圖杭州市在售房源數(shù)據(jù)分析與可視化繪制杭州市1990—2022年在售房源建造時(shí)間分布情況折線圖的代碼如下:dd=data.groupby("起建時(shí)間").count()["地理位置”]dd=dd["1990":"2022"]plt.figure(figsize=(16,9))plt.title("杭州市在售房源建造時(shí)間分布情況")plt.xticks(rotation=30,fontsize=12)plt.plot(dd.index,dd)杭州市在售房源數(shù)據(jù)分析與可視化杭州市在售房源板塊名稱詞云分析對數(shù)據(jù)集進(jìn)行簡單的預(yù)處理,代碼如下:df1=house_df.copy()df1["區(qū)"]=df1["區(qū)域"].str[0:2]df1["板塊"]=df1["區(qū)域"].str[2:]#單價(jià),只留數(shù)字df1["單價(jià)"]=df1["單價(jià)"].str[:-4]df1["單價(jià)"]=df1["單價(jià)"].astype("int64")dz=df1[(data["單價(jià)"]>20000)&(df1["單價(jià)"]<50000)]繪制杭州市在售房源板塊名稱詞云圖的代碼如下:dcloud=dz.groupby("板塊").count()dcloud["address"]=dcloud.indextext=[]foriinrange(len(dcloud["address"])):text.append((dcloud["address"][i],str(dcloud["區(qū)"][i])))杭州市在售房源數(shù)據(jù)分析與可視化w1=(WordCloud().add(series_name="熱點(diǎn)數(shù)值",data_pair=text,word_size_range=[1,100]).set_global_opts(title_opts=opts.TitleOpts(title="杭州市在售房源板塊名稱詞云圖",title_textstyle_opts=opts.TextStyleOpts(font_size=23)),tooltip_opts

溫馨提示

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

評論

0/150

提交評論