1. 程式人生 > >pandas基礎命令速查表

pandas基礎命令速查表

根據 位置 isn sha cat dataframe app 導出 fill

pandas基礎命令速查表


數據的導入
數據的導出
創建測試對象
數據的查看與檢查
數據的選取
數據的清洗
數據的過濾(filter)排序(sort)和分組(group)
數據的連接(join)與組合(combine)


一、數據的導入

pd.read_csv(filename) # 導入csv格式文件中的數據
pd.read_table(filename) # 導入有分隔符的文本 (如TSV) 中的數據
pd.read_excel(filename) # 導入Excel格式文件中的數據
pd.read_sql(query, connection_object) # 導入SQL數據表/數據庫中的數據
pd.read_json(json_string) # 導入JSON格式的字符,URL地址或者文件中的數據
pd.read_html(url) # 導入經過解析的URL地址中包含的數據框 (DataFrame) 數據
pd.read_clipboard() # 導入系統粘貼板裏面的數據
pd.DataFrame(dict) # 導入Python字典 (dict) 裏面的數據,其中key是數據框的表頭,value是數據框的內容。

二、數據的導出

df.to_csv(filename) # 將數據框 (DataFrame)中的數據導入csv格式的文件中
df.to_excel(filename) # 將數據框 (DataFrame)中的數據導入Excel格式的文件中
df.to_sql(table_name,connection_object) # 將數據框 (DataFrame)中的數據導入SQL數據表/數據庫中
df.to_json(filename) # 將數據框 (DataFrame)中的數據導入JSON格式的文件中

三、創建測試對象

創建一個DataFrame對象
pd.DataFrame(np.random.rand(10,5)) # 創建一個5列10行的由隨機浮點數組成的數據框 DataFrame

創建一個Series對象
pd.Series(my_list) # 從一個可叠代的對象 my_list 中創建一個數據組

四、數據的查看與檢查

df.head(n) # 查看數據框的前n行
df.tail(n) # 查看數據框的最後n行
df.shape # 查看數據框的行數與列數 shape是該對象的一個屬性值,不是函數
df.info() # 查看數據框 (DataFrame) 的索引、數據類型及內存信息
df.describe() # 對於數據類型為數值型的列,查詢其描述性統計的內容
s.value_counts(dropna=False) # s是一個Series對象,查詢每個獨特數據值出現次數統計
df.apply(pd.Series.value_counts)

# 統計df中每一個數字在每一列中出現的次數

五、數據的選取

df[col] # 以數組 Series 的形式返回選取的列,col是列名
df[[col1, col2]] # 以新的數據框(DataFrame)的形式返回選取的列
df.loc[0] # 選取第一行,沒有設置index時,第一行index默認為0
df.iloc[0,:] # 選取第一行
df.iloc[0,0] # 選取第一行第一個元素

s.iloc[0] # 按照位置選取
s.loc[‘index_one‘] # 按照索引選取 ‘index_one‘是指第一個位置的index名,沒有設置index時,inde默認為0

六、數據的清洗

df.columns = [‘a‘,‘b‘] # 重命名數據框的列名稱
pd.isnull() # 檢查數據中空值出現的情況,並返回一個由布爾值(True,Fale)組成的列
pd.notnull() # 檢查數據中非空值出現的情況,並返回一個由布爾值(True,False)組成的列
df.dropna() # 移除數據框 DataFrame 中包含空值的行
df.dropna(axis=1) # 移除數據框 DataFrame 中包含空值的列
df.fillna(x) # 將數據框 DataFrame 中的所有空值替換為 x

s.fillna(s.mean()) -> 將所有空值替換為平均值
s.astype(float) # 將數組(Series)的格式轉化為浮點數
s.replace(1,‘one‘) # 將數組(Series)中的所有1替換為‘one‘
s.replace([1,3],[‘one‘,‘three‘]) # 將數組(Series)中所有的1替換為‘one‘, 所有的3替換為‘three‘

df.rename(columns=lambda x: x + 2) # 將全體列重命名
df.rename(columns={‘old_name‘: ‘new_ name‘}) # 將選擇的列重命名
df.rename(index = lambda x: x+ 1) # 改變全體索引
df.set_index(‘column_one‘) # 改變索引 ,指定某一列的值當整個DataFrame的索引

七、數據的過濾(filter),排序(sort)和分組(groupby)

filter
df[df[col] > 0.5] # 以col列為標準,選取數值大於0.5的行為True,然後從df中選取這些行
df[(df[col] > 0.5) & (df[col] < 0.7)] # 選取數據框df中對應行(col列>0.5,col<0.7)
sort
df.sort_values(col1) # 按照數據框的列col1升序(ascending)的方式對數據框df做排序
df.sort_values(col2,ascending=False) # 按照數據框的列col2降序(descending)的方式對數據框df做排序
df.sort_values([col1,col2],ascending=[True,False]) # 按照數據框的列col1升序,col2降序的方式對數據框df做排序
groupby
df.groupby(col) # 按照某列對數據框df做分組
df.groupby(‘A‘).count() #根據A列分組,並計數
df.groupby([col1,col2]) # 按照列col1和col2對數據框df做分組
df.pivot_table(index=col1,values=[col2,col3],aggfunc=mean) # 做透視表,索引為col1,針對的數值列為col2和col3,aggfunc為分組函數,默認為mean,可以設置np.sum等

apply
df.apply(np.mean) # 對數據框df的每一列求平均值
df.apply(np.max,axis=1) # 對數據框df的每一行求最大值 #axis=0是指沿著行軸方向,即從上到下的列方向,axis=1是指沿著列軸方向,即從左到右的方向

八、數據的連接(join)與組合(combine)

df1.append(df2) # 在數據框df2的末尾添加數據框df1,其中df1和df2的列數應該相等
pd.concat([df1,df2]) # 不指定axis時默認為0,沿著行軸方向增加,列數應該相同與append一樣
pd.concat([df1, df2],axis=1) # 在數據框df1的列最後添加數據框df2,其中df1和df2的行數應該相等

df1.join(df2,on=col1,how=‘inner‘) # 對數據框df1和df2做內連接,其中連接的列為col1
pd.merge(df1,df2,left_on=‘key‘,right_on=‘key‘) #索引上的合並

九、數據的統計

df.describe() # 得到數據框df每一列的描述性統計
df.mean() # 得到數據框df中每一列的平均值
df.corr() # 得到數據框df中每一列與其他列的相關系數
df.count() # 得到數據框df中每一列的非空值個數
df.max() # 得到數據框df中每一列的最大值
df.min() # 得到數據框df中每一列的最小值
df.median() # 得到數據框df中每一列的中位數
df.std() # 得到數據框df中每一列的標準差

pandas基礎命令速查表