不管是業務數據分析 ,還是數據建模。數據處理都是及其重要的一個步驟,它對于最終的結果來說,至關重要。
今天,就為大家總結一下 “Pandas數據處理” 幾個方面重要的知識,拿來即用,隨查隨查。
- 導?數據
- 導出數據
- 查看數據
- 數據選取
- 數據處理
- 數據分組和排序
- 數據合并
1
2
|
# 在使用之前,需要導入pandas庫 import pandas as pd |
導?數據
這里我為大家總結7個常見用法。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
pd.DataFrame() # 自己創建數據框,用于練習 pd.read_csv(filename) # 從CSV?件導?數據 pd.read_table(filename) # 從限定分隔符的?本?件導?數據 pd.read_excel(filename) # 從Excel?件導?數據 pd.read_sql(query,connection_object) # 從SQL表/庫導?數據 pd.read_json(json_string) # 從JSON格式的字符串導?數據 pd.read_html(url) # 解析URL、字符串或者HTML?件,抽取其中的tables表格 |
導出數據
這里為大家總結5個常見用法。
1
2
3
4
5
6
7
8
9
10
|
df.to_csv(filename) #導出數據到CSV?件 df.to_excel(filename) #導出數據到Excel?件 df.to_sql(table_name,connection_object) #導出數據到SQL表 df.to_json(filename) #以Json格式導出數據到?本?件 writer = pd.ExcelWriter( 'test.xlsx' ,index = False ) df1.to_excel(writer,sheet_name = '單位' )和writer.save(),將多個數據幀寫?同?個?作簿的多個sheet(?作表) |
查看數據
這里為大家總結11個常見用法。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
df.head(n) # 查看DataFrame對象的前n? df.tail(n) # 查看DataFrame對象的最后n? df.shape() # 查看?數和列數 df.info() # 查看索引、數據類型和內存信息 df.columns() # 查看字段(??)名稱 df.describe() # 查看數值型列的匯總統計 s.value_counts(dropna = False ) # 查看Series對象的唯?值和計數 df. apply (pd.Series.value_counts) # 查看DataFrame對象中每?列的唯?值和計數 df.isnull(). any () # 查看是否有缺失值 df[df[column_name].duplicated()] # 查看column_name字段數據重復的數據信息 df[df[column_name].duplicated()].count() # 查看column_name字段數據重復的個數 |
數據選取
這里為大家總結10個常見用法。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
df[col] # 根據列名,并以Series的形式返回列 df[[col1,col2]] # 以DataFrame形式返回多列 s.iloc[ 0 ] # 按位置選取數據 s.loc[ 'index_one' ] # 按索引選取數據 df.iloc[ 0 ,:] # 返回第?? df.iloc[ 0 , 0 ] # 返回第?列的第?個元素 df.loc[ 0 ,:] # 返回第??(索引為默認的數字時,?法同df.iloc),但需要注意的是loc是按索引,iloc參數只接受數字參數 df.ix[[: 5 ],[ "col1" , "col2" ]] # 返回字段為col1和col2的前5條數據,可以理解為loc和 iloc的結合體。 df.at[ 5 , "col1" ] # 選擇索引名稱為5,字段名稱為col1的數據 df.iat[ 5 , 0 ] # 選擇索引排序為5,字段排序為0的數據 |
數據處理
這里為大家總結16個常見用法。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
df.columns = [ 'a' , 'b' , 'c' ] # 重命名列名(需要將所有列名列出,否則會報錯) pd.isnull() # 檢查DataFrame對象中的空值,并返回?個Boolean數組 pd.notnull() # 檢查DataFrame對象中的?空值,并返回?個Boolean數組 df.dropna() # 刪除所有包含空值的? df.dropna(axis = 1 ) # 刪除所有包含空值的列 df.dropna(axis = 1 ,thresh = n) # 刪除所有?于n個?空值的? df.fillna(value = x) # ?x替換DataFrame對象中所有的空值,?持 df[column_name].fillna(x) s.astype( float ) # 將Series中的數據類型更改為float類型 s.replace( 1 , 'one' ) # ?‘one'代替所有等于1的值 s.replace([ 1 , 3 ],[ 'one' , 'three' ]) # ?'one'代替1,?'three'代替3 df.rename(columns = lambdax:x + 1 ) # 批量更改列名 df.rename(columns = { 'old_name' : 'new_ name' }) # 選擇性更改列名 df.set_index( 'column_one' ) # 將某個字段設為索引,可接受列表參數,即設置多個索引 df.reset_index( "col1" ) # 將索引設置為col1字段,并將索引新設置為0,1,2... df.rename(index = lambdax:x + 1 ) # 批量重命名索引 |
數據分組、排序、透視
這里為大家總結13個常見用法。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
df.sort_index().loc[: 5 ] # 對前5條數據進?索引排序 df.sort_values(col1) # 按照列col1排序數據,默認升序排列 df.sort_values(col2,ascending = False ) # 按照列col1降序排列數據 df.sort_values([col1,col2],ascending = [ True , False ]) # 先按列col1升序排列,后按col2降序排列數據 df.groupby(col) # 返回?個按列col進?分組的Groupby對象 df.groupby([col1,col2]) # 返回?個按多列進?分組的Groupby對象 df.groupby(col1)[col2].agg(mean) # 返回按列col1進?分組后,列col2的均值,agg可以接受列表參數,agg([len,np.mean]) df.pivot_table(index = col1,values = [col2,col3],aggfunc = {col2: max ,col3:[ma, min ]}) # 創建?個按列col1進?分組,計算col2的最?值和col3的最?值、最?值的數據透視表 df.groupby(col1).agg(np.mean) # 返回按列col1分組的所有列的均值,?持 df.groupby(col1).col2.agg([ 'min' , 'max' ]) data. apply (np.mean) # 對DataFrame中的每?列應?函數np.mean data. apply (np. max ,axis = 1 ) # 對DataFrame中的每??應?函數np.max df.groupby(col1).col2.transform( "sum" ) # 通常與groupby連?,避免索引更改 |
數據合并
這里為大家總結5個常見用法。
1
2
3
4
5
6
7
8
9
|
df1.append(df2) # 將df2中的?添加到df1的尾部 df.concat([df1,df2],axis = 1 ,join = 'inner' ) # 將df2中的列添加到df1的尾部,值為空的對應?與對應列都不要 df1.join(df2.set_index(col1),on = col1,how = 'inner' ) # 對df1的列和df2的列執?SQL形式的join,默認按照索引來進?合并,如果df1和df2有共同字段時,會報錯,可通過設置lsuffix,rsuffix來進?解決,如果需要按照共同列進?合并,就要?到set_index(col1) pd.merge(df1,df2,on = 'col1' ,how = 'outer' ) # 對df1和df2合并,按照col1,?式為outer pd.merge(df1,df2,left_index = True ,right_index = True ,how = 'outer' ) #與 df1.join(df2, how='outer')效果相同 |
以上就是python數據處理67個pandas函數總結看完就用的詳細內容,更多關于python數據處理6pandas函數的資料請關注服務器之家其它相關文章!
原文鏈接:https://huang-tong-xue.blog.csdn.net/article/details/115598697