ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

pandas常用函数整理

2021-08-08 18:00:40  阅读:264  来源: 互联网

标签:index 常用 函数 df drop col1 pandas columns axis


Pandas是基于NumPy的一种工具,专门用于解决数据分析任务。Pandas提供了大量便于快速处理数据的函数和方法,本文将其中常用的部分进行汇总记录。

1. 文件处理

# 读取文件
df = pd.read_csv(path='file.csv')
"""
参数: 
    header=None  # 文件中不包含列名,df默认为0, 1, 2, 3...
    names=['A', 'B', 'c', ...]  # 自定义列名
    skiprows=[0, 1, 2]  # 需要跳过的行号,从文件头0开始
    nrows=N  # 需要读取的行数
    chunksize=M  # 每M次迭代一次,返回TextFileReader类型,用于大文件
    encoding=None  # 'ansi', 'utf-8', 'big5'
"""

dfex = pd.read_excel('file.xlsx', sheetname=[0, 1])  # 读取多个sheet页,返回df字典

# 保存文件
df.to_csv('./data/data_extracted.csv', encoding='gbk', index=None)

# 合并文件
pd.merge(df1, df2, on='common_col', how='inner', sort=True)  # 按照公共列合并两个DataFrame,inner/outer为交集/并集
pd.merge(df1, df2, left_on='col1', right_on='col2')  # df1,df2无公共列名,需指定两边的参考列

2. 数据查看

# 数据查看
df.shape  # 查看数据维度
df.head(n=N)  # 前N行
df.tail(n=M)  # 后M行
df.values()  # 值的二维数组,numpy.ndarray. 推荐使用df.to_numpy()
df.columns  # 列明,可以直接通过赋值修改
df.index  # 索引名,不可以直接赋值修改
df.reindex(index=['row1', 'row2'], columns=['col1', 'col2'])  # 根据新索引重新排序

# 数据选择
df[m:n]
df[df['col1'] > 1]  # 选取满足条件的行
df.query('col1 > 1')  # 选取满足条件的行
df.iloc[m:n]  # 根据index选取行或列,m-(n-1)行
df.loc['1':'m', 'col1':'coln']  # 根据index名称和columns选取区域,1-m行1-n列

3. 数据处理

# 重复、nan处理
df.duplicated()  # 返回各行是否是上一行的重复
df.drop_duplicates()  # 删除重复行,可根据列过滤
df.fillna(0)  # 实数0填充nan
df.dropna(axis=0, how='all')  # 删除值全为nan的行 (axis:0/1, how:'all'/'any')

# 删除
del df['col']  # 直接删除某一列
df.drop(list(range(5)), axis=0)  # 删除前5行
df.drop(['col1', 'col2'], axis=1)  # 删除指定列
new_index = df.reset_index(drop=False)  # drop=True时重置df的索引

# 行列index重命名
df.rename(index={'row1':'A'}, 
          columns={'col1':'A1'}

df.replace(20, 30)  # 将20替换为30
          
df['col1'].map(func)  # Series.map, 只对列进行函数转换          
          
df.stack()  # 将二维数据压缩为一维,按属性组合: rows, cols -> (row * cols), 1
df.unstack()  # 如果某一列具有较少类别,就把这些类别拉出来做为列
df.pivot()  # 将数据集压扁

4. 数据运算与排序

df.T  # DataFrame转置
df1 + df2  # 按照索引和列相加,得到并集,NaN填充
df * N  # 所有元素乘以N
df.sort_index(axis=0, ascending=True)  # 按行索引升序排列
df.sort_index(by=['col1', 'col2'])  # 按指定列优先排序

参考文献
[1] pandas常用函数

标签:index,常用,函数,df,drop,col1,pandas,columns,axis
来源: https://www.cnblogs.com/js2hou/p/15115574.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有