pandas常用函數


關鍵詞和導入

在這個速查卡中,我們會用到一下縮寫:

df 二維的表格型數據結構DataFrame
s 一維數組Series

 

 

 

 

您還需要執行以下導入才能開始:

import pandas as pd

import numpy as np

 

 

導入數據

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) 解析html URL,字符串或文件,並將表提取到數據框列表
pd.read_clipboard() 獲取剪貼板的內容並將其傳遞給read_table()
pd.DataFrame(dict) 從字典、列名稱鍵、數據列表的值導入

 

 

 

 

 

 

 

 

 

 

 

 

輸出數據

df.to_csv(filename) 寫入CSV文件
df.to_excel(filename) 寫入Excel文件
df.to_sql(table_name, connection_object) 寫入一個SQL表
df.to_json(filename) 寫入JSON格式的文件

 

 

 

 

 

 

 

 

 

創建測試對象

用於測試的代碼

pd.DataFrame(np.random.rand(20,5)) 5列、20行的隨機浮動
pd.Series(my_list) 從可迭代的my_list創建一維數組
df.index=pd.date_range('1900/1/30', periods=df.shape[0]) 添加日期索引

 

 

 

 

 

 

 

查看/檢查數據

df.head(n) 數據框的前n行
df.tail(n) 數據框的后n行
df.shape() 行數和列數
df.info() 索引,數據類型和內存信息
df.describe() 數值列的匯總統計信息
s.value_counts(dropna=False) 查看唯一值和計數
df.apply(pd.Series.value_counts) 所有列的唯一值和計數

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

選擇

df[col] 返回一維數組col的列
df[[col1, col2]] 作為新的數據框返回列
s.iloc[0] 按位置選擇
s.loc['index_one'] 按索引選擇
df.iloc[0,:] 第一行
df.iloc[0,0] 第一列的第一個元素

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

數據清洗

df.columns = ['a','b','c'] 重命名列
pd.isnull() 檢查空值,返回邏輯數組
pd.notnull() 與pd.isnull()相反
df.dropna() 刪除包含空值的所有行
df.dropna(axis=1) 刪除包含空值的所有列
df.dropna(axis=1,thresh=n) 刪除所有小於n個非空值的行
df.fillna(x) 用x替換所有空值
s.fillna(s.mean()) 將所有空值替換為均值(均值可以用統計部分中的幾乎任何函數替換)
s.astype(float) 將數組的數據類型轉換為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.rename(index=lambda x: x + 1) 批量重命名索引

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

篩選,排序和分組

df[df[col] > 0.5] col列大於0.5的行
df[(df[col] > 0.5) & (1.7)] 0.7> col> 0.5的行
df.sort_values(col1) 將col1按升序對值排序
df.sort_values(col2,ascending=False) 將col2按降序對值排序
df.sort_values([col1,ascending=[True,False]) 將col1按升序排序,然后按降序排序col2
df.groupby(col) 從一列返回一組對象的值
df.groupby([col1,col2]) 從多列返回一組對象的值
df.groupby(col1)[col2] 返回col2中的值的平均值,按col1中的值分組(平均值可以用統計部分中的幾乎任何函數替換)
df.pivot_table(index=col1,values=[col2,col3],aggfunc=max) 創建一個數據透視表,按col1分組並計算col2和col3的平均值
df.groupby(col1).agg(np.mean) 查找每個唯一col1組的所有列的平均值
data.apply(np.mean) 在每個列上應用函數
data.apply(np.max,axis=1) 在每行上應用一個函數

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

加入/合並

df1.append(df2) 將df1中的行添加到df2的末尾(列數應該相同)
df.concat([df1, df2],axis=1) 將df1中的列添加到df2的末尾(行數應該相同)
df1.join(df2,on=col1,how='inner') SQL類型的將df1中的列與df2上的列連接,其中col的行具有相同的值。 可以是“左”,“右”,“外”,“內”連接

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

統計

以下這些都可以應用於一個數組。

df.describe() 數值列的匯總統計信息
df.mean() 返回所有列的平均值
df.corr() 查找數據框中的列之間的相關性
df.count() 計算每個數據框的列中的非空值的數量
df.max() 查找每個列中的最大值
df.min() 查找每列中的最小值
df.median() 查找每列的中值
df.std() 查找每個列的標准差


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM