?? 作者:韓信子@ShowMeAI
?? 資料分析實戰系列:http://www.showmeai.tech/tutorials/40
?? 本文地址:http://www.showmeai.tech/article-detail/304
?? 宣告:著作權所有,轉載請聯系平臺與作者并注明出處
?? 收藏ShowMeAI查看更多精彩內容
Python具有極其活躍的社區和覆寫全領域的第三方庫工具庫,近年來一直位居編程語言熱度頭部位置,而資料科學領域最受歡迎的python工具庫之一是 Pandas,隨著這么多年來的社區高速發展和海量的開源貢獻者,使得 pandas 幾乎可以勝任任何資料處理作業,
Pandas的功能與函式極其豐富,要完全記住和掌握是不現實的(也沒有必要),資深資料分析師和資料科學家最常使用的大概有二三十個函式,在本篇內容中,ShowMeAI 把這些功能函式總結為10類,熟練掌握它們,你就可以輕松解決80% 以上的資料處理問題,
也推薦大家閱讀ShowMeAI針對資料分析撰寫的教程和速查表,快速成為資料洞察高手!
- 圖解資料分析:從入門到精通系列教程
- 資料科學工具庫速查表 | Pandas 速查表
?? 1.讀取資料
我們經常要從外部源讀取資料,基于不同的源資料格式,我們可以使用對應的 read_*功能:
read_csv:我們讀取CSV格式資料時使用它,這個函式的使用注意點包括header(是否有表頭以及哪一行是表頭),sep(分隔符),和usecols(要使用的列/欄位的子集),read_excel:讀取Excel格式檔案時使用它,這個函式的使用注意點包括sheet_name(哪個表)和標題,read_pickle:讀取pickle格式存盤的檔案時使用,這個格式的優勢是比 CSV 和 Excel快很多,read_sas: 我經常使用這個功能,因為我曾經使用 SAS 來處理資料,
?? 2.寫入資料
處理完資料后,我們可能會把處理后的DataFrame保存下來,最常用的檔案寫入函式如下:
to_csv: 寫入 CSV 檔案, 注意:它不保留某些資料型別(例如日期), 很多情況下我們會將引數索引設定為False,這樣就不用額外的列來顯示資料檔案中的索引,to_excel: 寫入 Excel 檔案,to_pickle:寫入pickle檔案,這是建議的寫入格式,讀寫的速度都非常快,
?? 3.資料概覽
將資料成 DataFrame 格式后,我們最好對資料有一個初步的了解,以下是最常用到的幾個資料概覽函式,能提供資料的基本資訊,
head:回傳前幾行,通常用于檢查資料是否正確讀取,以及了解資料欄位和形態等基本資訊,tail:檢查最后幾行,在處理大檔案時,讀取可能不完整,可以通過它檢查是否完整讀取資料,info:資料集的總體摘要:包括列的資料型別和記憶體使用情況等資訊,describe:提供資料集的描述性摘要(比如連續值的統計資訊、類別型欄位的頻次資訊等),shape: 行數和列數(注意,這是Dataframe的屬性,而非函式),
?? 4.資料排序
我們經常需要對資料進行排序,Dataframe有一個重要的排序函式,
sort_values:通過指定列名對資料進行排序,可以調整升序或者降序規則,
?? 5.處理重復
我們手上的資料集很可能存在重復記錄,某些資料意外兩次輸入到資料源中,清洗資料時洗掉重復項很重要, 以下函式很常用:
duplicated: 識別DataFrame中是否有重復,可以指定使用哪些列來標識重復項,drop_duplicates:從 DataFrame 中洗掉重復項,一般建議大家先使用duplicated檢查重復項,確定業務上需要洗掉重復項,再使用這個函式,
?? 6.處理缺失值
現實資料集中基本都會存在缺失值的情況,下面這些函式常被用作檢查和處理缺失值,
isnull:檢查您的 DataFrame 是否缺失,dropna: 對資料做洗掉處理,注意它有很重要的引數how(如何確定觀察是否被丟棄)和thred(int型別,保留缺失值的數量),fillna: 用指定的方法填充缺失值,例如向前填充 (ffill),
?? 7.資料處理
一個欄位可能包含很多資訊,我們可以使用以下函式對欄位進行資料處理和資訊抽取:
map:通常使用map對欄位進行映射操作(基于一些操作函式),如df[“sub_id”] = df[“temp_id”].map(lambda x: int(x[-4:])).apply:通過多列的資料創建新的欄位,在創建新列時經常需要指定axis=1,
?? 8.資料透視
Dataframe有 2 種常見資料:
- 『寬』格式,指的是每一行代表一條記錄(樣本),每一列是一個觀測維度(特征),
- 『長』格式,在這種格式中,一個主題有多行,每一行可以代表某個時間點的度量,
我們會在這兩種格式之間轉換,
melt:將寬表轉換為長表, 注意:重要引數id_vars(對于識別符號)和value_vars(其值對值列有貢獻的列的串列),pivot:將長表轉換為寬表,注意:重要引數index(唯一識別符號),columns(列成為值列),和values(具有值的列),
?? 9.合并資料集
我們對多個資料集Dataframe合并的時候,可能用到下列的函式(包括表關聯和拼接),
merge:基于某些欄位進行表關聯,重要的引數包括on(連接欄位),how(例如內連接或左連接,或外連接),以及suffixes(相同欄位合并后的后綴),concat:沿行或列拼接DataFrame物件,當我們有多個相同形狀/存盤相同資訊的 DataFrame 物件時,它很有用,
?? 10.分組統計
我們經常會需要對資料集進行分組統計操作,常用的函式包括:
groupby:創建一個 GroupBy 分組物件,可以基于一列或多列進行分組,mean:您可以在 GroupBy 分組物件上呼叫 mean 來計算均值,其他的常用統計資訊包括標準差std,size: 分組的頻率agg:聚合函式,包括常用的統計方法,也可以自己定義,
參考資料
- ?? 圖解資料分析:從入門到精通系列教程:http://www.showmeai.tech/tutorials/33
- ?? 資料科學工具庫速查表 | Pandas 速查表:http://www.showmeai.tech/article-detail/101
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/501513.html
標籤:其他
