Python數據分析:探索性分析

寫在前面

如果你忘記了前面的文章,可以看看加深印象:
Pandas數據處理
Python數據分析實戰:缺失值處理
Python數據分析實戰:獲取數據

然後可以進入今天的正文

一、描述性統計分析

Excel裏可以用【數據分析】功能裏的【描述統計】功能來查看數據集常用的統計指標,但這裏只能是對數值型的數據進行統計。

 

pandas裏可以用describe方法對整個數據集做一個描述性統計分析,當然這裏也只是對數值型數據纔可以出結果,非數值型數據不在統計範圍內。

# 描述性統計分析
df_list.describe()

得到結果如下,可以看到count(計數)、mean(均值)、std(標準差)、min(最小值)、max(最大值)、25%、50%、75%分別表示3/4位數、中位數和1/4位數。

 

行列轉置

由於字段太多了,所以這裏可以轉置一下,方便查看,用.T轉置

# 行列轉置
df_list.describe().T

結果如圖,更符合一個表格的習慣,可以看到能夠被統計出來的只有數值型數據,字符型的數據是統計不出來的。

 

觀察到最小入住天數(minimum_nights)這個字段最小值、1/4位數、中位數、3/4位數都是1,說明大部分房源對最小入住天數的要求都是1天。同樣的結論適用於每月評論數(reviews_per_month)這個字段

二、分組分析

Excel裏用數據透視表可以實現數據分組計算的功能。

 

看下neighborhood_new字段都有哪些值,用value_counts方法對出現次數計數

# 數值計數
df_list["neighborhood_new"].value_counts()

結果可以看到neighborhood_new字段下總共有多少個區縣分類及其出現的次數按降序排列下來了,可以看到朝陽區的房源最多,平谷區的房源最少。

 


還可以用groupby方法實現分組計數

 

# 分組
df_list.groupby("neighborhood_new")["neighborhood_new"].count()

得到的結果是一樣的

 

對room_type_new一列也可以分組看下結果

df_list["room_type_new"].value_counts()

可以看到房間類型上有3種分類,整套房源(Entire home)最多,合租型的房源(Shared room)最少。

 

三、交叉分析

分組

對區域分組,統計不同區域房價的水平,同樣用groupby方法分組,但是可以用agg方法一次使用多種彙總方式。

df_list.groupby("neighborhood_new")["price"].agg(["max","min","mean","count"])

結果如圖,對neighborhood_new字段分組,對分組後的價格求最大最小平均值並計數,可以看到懷柔區的房價平均值最高,豐臺區最低。

 


對房間類型分組,並將結果按均值降序排列

 

r_p = df_list.groupby("room_type_new")["price"].agg(["max","min","mean","count"]).reset_index()
r_p.sort_values("mean",ascending = False)

結果如圖,整租的房價均值最高,合租最低,很合理的結果。

 

透視

對房間類型和區域做一個透視,使用pivot_table方法,和Excel裏的數據透視表是一種類型的操作,第一個參數是要透視的數據,values參數是Excel透視表中的值區域,即要進行彙總的字段,index參數是Excel透視表中的行區域,columns參數是列區域,aggfuc參數是要對values進行彙總的類型。

pd.pivot_table(df_list,values = "price",index = "neighborhood_new",
                columns = "room_type_new",aggfunc = "mean",margins = True)

結果如圖,可以看到整租、合租、單間在各個區域中的價格分佈。

 

四、相關性分析

相關性分析是用來描述變量之間相關關係的結果,用相關係數r來表示,r>0表示正相關,r<0表示負相關,r的絕對值越接近1,表示越高度相關。 Excel裏用【數據分析】工具裏的【相關係數】功能可以直接計算出各個字段的相關係數。

 

python裏可以用corr函數計算數據間的相關係數,對整個數據表計算,並對結果取小數點後4位

# 計算相關係數
df_list.corr().round(4)

結果如下,就可以得到各個列之間的相關係數。

 

但是這裏我們其實最關注的是他們同價格之間的相關性,也就是圖中標紅的部分,可以對這列的數值排個序。

 

數值排序

數值排序就是讓整個數據表按照指定列升序或降序排列,用到sort_values方法。對求完相關係數後的數據框選擇其price列進行降序,第一個參數是對哪一列進行排序,第二個參數ascending = False是降序排列,默認是True升序。

# 數值排序
corr_p = df_list.corr().round(4)
corr_p["price"].sort_values(ascending = False)

結果如下,可以看到,房價和經緯度(latitude、longitude)的相關性是最高的,除此以外相比其他變量,可預定天數(availability_365)和價格最正相關的,其次每月評論數量(reviews_per_month)和價格呈負相關。

 


猜你喜歡:
數據分析實戰:母嬰商品分析

《吊打分析師》實戰—我要租個好房

簡單的Excel數據分析案例

爲什麼要學統計學:赤裸裸的統計學

成爲數據分析師的第三年,我寫了10W字

@ 作者:可樂
@ 公衆號/知乎專欄/頭條/簡書:可樂的數據分析之路
@ 個人微信:data_cola

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章