Pandas常用命令對照清單

  • 我們在內容中使用以下簡寫:

df pandas的DataFrame對象
s pandas的Series對象

  • 導入以下包開始

import pandas as pd
import numpy as np

導入數據

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格式的字符串、URL或文件
pd.read_html(url) 解析htmlurl,字符串或者文件,從一系列的dataframes提取table
pd.read_clipboard() 獲取剪切板的內容,將其傳遞給read_table
pd.DataFrame(dict) 從dict獲取DataFrame,鍵名爲欄目名,值爲一系列的列表

導出數據

df.to_csv(filename) 寫入csv文件
df.to_excel(filename) 寫入excel文件
df.to_sql(table_name, connection_object) 寫入SQL數據庫(表)
df.to_json(filename) 以json文件的形式寫入
df.to_html(filename) 保存成html格式
df.to_clipboard() 寫進剪貼板

創建測試對象

pd.DataFrame(np.random.rand(20,5)) 生成5列20行的隨機浮點數
pd.Series(my_list) 用可迭代列表創造一列數據
df.index = pd.date_range('1900/1/30',periods=df.shape[0]) 增加一個日期索引

查看數據

df.head(n) DataFrame開頭的n行記錄
df.tail(n) DataFrame結尾的n行記錄
df.shape() DataFrame行、列數
df.info() 展示Index,Datatype,Memory相關信息
df.describe() 數字列的相關綜合統計
s.value_counts(dropna=False) 查看某一列唯一的值並統計數量
df.apply(pd.Series.value_counts) 查看所有的列唯一的值並統計數量

數據選擇

df[col] 取出標籤是col的一列
df[[col1, col2]] 作爲DataFrame返回兩列
s.iloc[0] 根據位置選擇  
s.loc[0] 根據索引選擇
df.iloc[0,:] 第一行
df.iloc[0,0] 第一列的第一個元素

數據清洗

df.columns = ['a','b','c']重命名列
pd.isnull() 確認是否爲空值,返回布爾數組
pd.notnull() 與上面相反
df.dropna() 刪除所有包含null值的行記錄
df.dropna(axis=1) 刪除所有包含null值的列記錄
df.dropna(axis=1,thresh=n) 刪除所有包含少於n個非空值的行
df.fillna(s.mean()) 用平均值替換掉所有空值
s.astype(float) 將某series的數據轉換成float的數據類型 
s.replace(1,'one') 將所有值等於1的替換爲one
s.replace([1,3], ['one','three']) 將所有值等於1的替換爲one,3替換爲three
df.rename(columns=lambda x:x+1) 取上一般性的標題名
df.rename(columns={'old_name':'new_name'}) 指定列名重命名
df.set_index('column_one') 修改索引

過濾,排序和分組

df[df[col] > 0.5] col列值大於0.5的行
df[(df[col] >0.5) & (df[col] <0.7)] col列值大於0.5小於0.7的行
df.sort_values(col1) 按照col1進行升序進行排列
df.sort_values(col2,ascending=False) 根據col2進行降序排列
df.sort_values([col1,col2],ascending=[True,False]) 根據col1升序col2降序聯合排列
df.groupby(col) 根據某列的值返回分組對象
df.groupby([col1,col2]) 根據多列的值返回分組對象
df.groupby(col1)[col2].mean() 根據col1值返回分組對象,求col2列的平均值
df.pivot_table(index=col1,values=[col2,col3],aggfunc=mean) 
創建一個按col1分組的數據透視表,並計算col2col3的平均值
df.groupby(col1).agg(np.mean) 查找每個唯一col1組的所有列的平均值
df.apply(np.mean) 給每一列都計算平均值
df.apply(np.max, axis=1) 找出每一行的最大值

數據連接

df1.append(df2) 將df1的數據添加在df2下方(列必須相同)
df.concat([df1,df2],axis=1) 將df2的數據加載df1右側(行必須相同)
df1.join(df2,on=col1,how='inner')SQL的方式加入列df1與列在df2其中對於行col具有相同的值。how參數可以爲'left''right''outer''inner'

數學統計

df.describe() 顯示總體統計的彙總狀況
df.mean() 返回所有列的平均值
df.corr() 返回Dataframe列之間的相關關係
df.count() 返回Dataframe列中的非空值數量
df.max() 返回Dataframe列中的最大值
df.min() 返回Dataframe列中的最低值
df.median() 返回Dataframe每列的中位數
df.std() 返回Dataframe每列的標準差


原文作者:everfight
轉鏈接:https://www.jianshu.com/p/80f4e2097e1f
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章