原文:
如果你在使用 pandas(pythondata analysis library) 的話,下面介紹的對你一定會有幫助的。
首先我們先介紹一些簡單的概念
分批載入
有時我們可能需要載入的 csv 太大,可能會導致記憶體爆掉,這時候,我們就需要分批載入資料進行分析、處理
df.head(n):瀏覽資料的前 n 行,預設 5 行
df.tail(n):瀏覽資料的末尾 n 行,預設 5 行
df.sample(n):隨機瀏覽 n 行資料,預設 5 行
df.shape:tuple 型別的資料行列數,(行數,列數)
df.describe():計算評估資料的趨勢
記憶體和資料型別
在 dataframe 中新增新列的操作很簡單,下面介紹幾種方式
簡單方式
計算方式
條件方式
迴圈方式
類似於 excel 單元格的選擇,pandas 提供了這樣的功能,操作很簡單,但是我本人理解起來確實沒有操作看上去那麼簡單。pandas 提供了三個方法做類似的操作,loc,iloc,ix,ix 官方已經不建議使用,所以我們下面介紹 loc 和 iloc
loc 根據標籤選取loc
iloc 根據索引選取
選取行資料
注意:索引開始位置:閉區間
索引結束位置:開區間
loc 和 iloc 選取整列資料的時候,看上去與 df[列名陣列] 的方式一致,但是其實前者返回的仍然是 dataframe,後者返回的是 series
我們需要看第一季度的資料是怎樣的,就需要使用條件過濾
體感的舒適適濕度是40-70,我們試著過濾出體感舒適濕度的資料
最後整合上面兩種條件,在一季度體感濕度比較舒適的資料
資料按照某列進行排序
「by」引數可以使用字串,也可以是列表,ascending 的引數也可以是單個值或者列表
ascending 預設值是 true
我們通過 describe 方法檢視的統計資訊中均值和方差都是按照列統計呢,這裡要說的,既可以按照列,還可以按照行
均值,行 df.mean(axis=0),列df.mean(axis=1)
方差,行 df.std(axis=0),列df.std(axis=1)
連線合併
在兩個 df 的結果一致的情況下,我們可以簡單兩個 df 拼接起來
垂直(行)拼接,pd.concat([df1,df2],axis=0),水平(列)拼接,pd.concat([df1,df2],axis=1)
基於索引關鍵字合併
pandas 還提供了像 sql 一樣的連線,內聯,外聯,左聯,右聯
作為我們的示例資料,可以唯一標識一行的就是 datatime 列
merged_df = df_1.merge(df_2, how='left', on='datetime')
每行有多少 nan,df.isnull().sum()
dataframe 中 nan 的總數,上面統計出來的數量求和,df.isnull().sum().sum()
分組在資料統計的時候經常使用。特別是統計數量、計算和、求平均值,等等。
我們在這裡統計一下每個季度的假期數是多少
在統計一下,每個季度的平均分風速是多少
通過這兩次的分享,我們已經了解了 pandas 資料處理常用的方式方法。
資料分析工具 Pandas 功能介紹(二)
我們需要看第一季度的資料是怎樣的,就需要使用條件過濾 體感的舒適適濕度是40 70,我們試著過濾出體感舒適濕度的資料 最後整合上面兩種條件,在一季度體感濕度比較舒適的資料 資料按照某列進行排序 by 引數可以使用字串,也可以是列表,ascending 的引數也可以是單個值或者列表 ascending...
資料分析工具pandas
14 分組運算 原因 聚合運算改變了原始資料的shape 如何保持原始資料的shape?使用merge的外連線,比較複雜 transform transform的計算結果和原始資料的shape保持一致 如 grouped.transform mp.mean 也可傳入自定義函式 1.資料清洗時資料分析...
Python資料分析入門(三) Pandas介紹
那麼問題來了 numpy已經能夠幫助我們處理資料,能夠結合matplotlib解決我們資料分析的問題,那麼pandas學習的目的在什麼地方呢?numpy能夠幫我們處理處理數值型資料,但是這還不夠,很多時候,我們的資料除了數值之外,還有字串,還有時間序列等 比如 我們通過爬蟲獲取到了儲存在資料庫中的資...