pandas常用函数清单

文件读取

读取参数

df = pd.read_csv(path='file.csv')
# 参数:
# header=None  用默认列名,0,1,2,3...
# names=['A', 'B', 'C...'] 自定义列名
# index_col='A'|['A', 'B'...]  给索引列指定名称,如果是多重索引,可以传list
# skiprows=[0,1,2] 需要跳过的行号,从文件头0开始,skip_footer从文件尾开始
# nrows=N 需要读取的行数,前N行
# chunksize=M 返回迭代类型TextFileReader,每M条迭代一次,数据占用较大内存时使用
# sep=':'数据分隔默认是',',根据文件选择合适的分隔符,如果不指定参数,会自动解析
# skip_blank_lines=False 默认为True,跳过空行,如果选择不跳过,会填充NaN
# converters={'col1', func} 对选定列使用函数func转换,通常表示编号的列会使用(避免转换成int)

其他格式

dfjs = pd.read_json('file.json')  # 可以传入json格式字符串
dfex = pd.read_excel('file.xls', sheetname=[0,1..])  # 读取多个sheet页,返回多个df的字典

数据预处理

df.duplicated()  # 返回各行是否是上一行的重复行
df.drop_duplicates()  # 删除重复行,如果需要按照列过滤,参数选填['col1', 'col2',...]
df.fillna(0)  # 用实数0填充na
df.dropna()  # axis=0|1  0-index 1-column
             # how='all'|'any' all-全部是NA才删  any-只要有NA就全删
del df['col1']  # 直接删除某一列              
df.drop(['col1',...], aixs=1)  # 删除指定列,也可以删除行                          
df.columns = col_lst  # 重新制定列名
df.rename(index={'row1':'A'},  # 重命名索引名和列名
          columns={'col1':'A1'})  
df.replace(dict)  # 替换df值,前后值可以用字典表,{1:‘A’, '2':'B'}

数据运算与排序

df.T  # DataFrame转置
df1 + df2  # 按照索引和列相加,得到并集,NaN填充
df1.add(df2, fill_value=0)  # 用其他值填充
df1.add/sub//mul/div  # 四则运算的方法
df - sr  # DataFrame的所有行同时减去Series
df * N  # 所有元素乘以N
df.add(sr, axis=0)  # DataFrame的所有列同时减去Series

数学统计

sr.unique()  # Series去重
sr.value_counts()  # Series统计频率,并从大到小排序,DataFrame没有这个方法
sr.describe()  # 返回基本统计量和分位数

df.describe()  # 按各列返回基本统计量和分位数
df.count()  # 求非NA值得数量
df.max()  # 求最大值
df.min()  # 求最小值
df.sum(axis=0)  # 按各列求和
df.mean()  # 按各列求平均值
df.median()  # 求中位数
df.var()  # 求方差
df.std()  # 求标准差
df.mad()  # 根据平均值计算平均绝对利差
df.cumsum()  # 求累计和
sr1.corr(sr2)  # 求相关系数
df.cov()  # 求协方差矩阵
df1.corrwith(df2)  # 求相关系数

pd.cut(array1, bins)  # 求一维数据的区间分布
pd.qcut(array1, 4)  # 按指定分位数进行区间划分,4可以替换成自定义的分位数列表   

分组与聚合

df['col1'].groupby(df['col2'])  # 列1按照列2分组,即列2作为key
df.groupby('col1')  # DataFrame按照列1分组
grouped.aggreagte(func)  # 分组后根据传入函数来聚合
grouped.aggregate([f1, f2,...])  # 根据多个函数聚合,表现成多列,函数名为列名
grouped.aggregate([('f1_name', f1), ('f2_name', f2)])  # 重命名聚合后的列名
grouped.aggregate({'col1':f1, 'col2':f2,...})  # 对不同的列应用不同函数的聚合,函数也可以是多个

df.pivot_table(['col1', 'col2'],  # 根据row1, row2对col1, col2做分组聚合,聚合方法可以指定多种,并用指定值替换缺省值
               rows=['row1', 'row2'], 
               aggfunc=[np.mean, np.sum]
               fill_value=0,
               margins=True)  

pd.crosstab(df['col1'], df['col2'])  # 交叉表,计算分组的频率 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值