若是你忘記了前面的文章,能夠看看加深印象:
Pandas數據處理
Python數據分析實戰:缺失值處理
Python數據分析實戰:獲取數據python
而後能夠進入今天的正文git
Excel裏能夠用【數據分析】功能裏的【描述統計】功能來查看數據集經常使用的統計指標,但這裏只能是對數值型的數據進行統計。
ide
pandas裏能夠用describe方法對整個數據集作一個描述性統計分析,固然這裏也只是對數值型數據才能夠出結果,非數值型數據不在統計範圍內。函數
# 描述性統計分析
df_list.describe()
獲得結果以下,能夠看到count(計數)、mean(均值)、std(標準差)、min(最小值)、max(最大值)、25%、50%、75%分別表示3/4位數、中位數和1/4位數。
工具
因爲字段太多了,因此這裏能夠轉置一下,方便查看,用.T轉置spa
# 行列轉置
df_list.describe().T
結果如圖,更符合一個表格的習慣,能夠看到可以被統計出來的只有數值型數據,字符型的數據是統計不出來的。3d
觀察到最小入住天數(minimum_nights)這個字段最小值、1/4位數、中位數、3/4位數都是1,說明大部分房源對最小入住天數的要求都是1天。一樣的結論適用於每個月評論數(reviews_per_month)這個字段code
Excel裏用數據透視表能夠實現數據分組計算的功能。orm
看下neighborhood_new字段都有哪些值,用value_counts方法對出現次數計數blog
# 數值計數
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)和價格呈負相關。