本文研究的主要是pandas常用函数,具体介绍如下。

1 import语句

2 文件读取

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的字典

3 数据预处理

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.column = col_lst 重新制定列名

df.rename(index={'row1':'A'}, 重命名索引名和列名

columns={'col1':'A1'})

df.replace(dict) 替换df值,前后值可以用字典表,{1:‘A', '2':'B'}

def get_digits(str):

m = re.match(r'(\d+(\.\d+)?)', str.decode('utf-8'))

if m is not None:

return float(m.groups()[0])

else:

return 0

df.apply(get_digits) DataFrame.apply,只获取小数部分,可以选定某一列或行

df['col1'].map(func) Series.map,只对列进行函数转换

pd.merge(df1, df2, on='col1',

how='inner',sort=True) 合并两个DataFrame,按照共有的某列做内连接(交集),outter为外连接(并集),结果排序

pd.merge(df1, df2, left_on='col1',

right_on='col2') df1 df2没有公共列名,所以合并需指定两边的参考列

pd.concat([sr1, sr2, sr3,...], axis=0) 多个Series堆叠成多行,结果仍然是一个Series

pd.concat([sr1, sr2, sr3,...], axis=1) 多个Series组合成多行多列,结果是一个DataFrame,索引取并集,没有交集的位置填入缺省值NaN

df1.combine_first(df2) 用df2的数据补充df1的缺省值NaN,如果df2有更多行,也一并补上

df.stack() 列旋转成行,也就是列名变为索引名,原索引变成多层索引,结果是具有多层索引的Series,实际上是把数据集拉长

df.unstack() 将含有多层索引的Series转换为DataFrame,实际上是把数据集压扁,如果某一列具有较少类别,那么把这些类别拉出来作为列

df.pivot() 实际上是unstack的应用,把数据集压扁

pd.get_dummies(df['col1'], prefix='key') 某列含有有限个值,且这些值一般是字符串,例如国家,借鉴位图的思想,可以把k个国家这一列量化成k列,每列用0、1表示

4 数据筛选

df.columns 列名,返回Index类型的列的集合

df.index 索引名,返回Index类型的索引的集合

df.shape 返回tuple,行x列

df.head(n=N) 返回前N条

df.tail(n=M) 返回后M条

df.values 值的二维数组,以numpy.ndarray对象返回

df.index DataFrame的索引,索引不可以直接赋值修改

df.reindex(index=['row1', 'row2',...]

columns=['col1', 'col2',...]) 根据新索引重新排序

df[m:n] 切片,选取m~n-1行

df[df['col1'] > 1] 选取满足条件的行

df.query('col1 > 1') 选取满足条件的行

df.query('col1==[v1,v2,...]')

df.ix[:,'col1'] 选取某一列

df.ix['row1', 'col2'] 选取某一元素

df.ix[:,:'col2'] 切片选取某一列之前(包括col2)的所有列

df.loc[m:n] 获取从m~n行(推荐)

df.iloc[m:n] 获取从m~n-1行

df.loc[m:n-1,'col1':'coln'] 获取从m~n行的col1~coln列

sr=df['col'] 取某一列,返回Series

sr.values Series的值,以numpy.ndarray对象返回

sr.index Series的索引,以index对象返回

5 数据运算与排序

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.order() Series升序排列

df.sort_index(aixs=0, ascending=True) 按行索引升序

df.sort_index(by=['col1', 'col2'...]) 按指定列优先排序

df.rank() 计算排名rank值

6 数学统计

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'],

rows=['row1', 'row2'],

aggfunc=[np.mean, np.sum]

fill_value=0,

margins=True) 根据row1, row2对col1, col2做分组聚合,聚合方法可以指定多种,并用指定值替换缺省值

pd.crosstab(df['col1'], df['col2']) 交叉表,计算分组的频率

总结

以上就是本文关于Python pandas常用函数详解的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

原文链接:http://www.cnblogs.com/rexyan/p/7975707.html

blankcount函数python,Python pandas常用函数详解相关推荐

  1. python流程控制-Python流程控制常用工具详解

    在我们的工作中,我们使用ddagent ver.5作为收集工具,收集和报告托管服务器的性能指标,并对ddagent进行一定程度的定制.经过多次功能迭代,发现一批在线运行时间长的托管服务器占用了太多内存 ...

  2. Python自动化——pytest常用插件详解

    前言 Pytest是Python的一种单元测试框架,与unittest相比,使用起来更简洁.效率更高,也是目前大部分使用python编写测试用例的小伙伴们的第一选择了. 除了框架本身提供的功能外,Py ...

  3. 【python教程入门学习】Python函数定义及传参方式详解(4种)

    这篇文章主要介绍了Python函数定义及传参方式详解(4种),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 一.函数初识 1.定 ...

  4. python中的super用法详解_Python中super函数用法实例分析

    本文实例讲述了python中super函数用法.分享给大家供大家参考,具体如下: 这是个高大上的函数,在python装13手册里面介绍过多使用可显得自己是高手 23333. 但其实他还是很重要的. 简 ...

  5. Python函数(函数定义、函数调用)用法详解

    函数 函数就是一段封装好的,可以重复使用的代码,它使得我们的程序更加模块化,不需要编写大量重复的代码. 函数可以提前保存起来,并给它起一个独一无二的名字,只要知道它的名字就能使用这段代码.函数还可以接 ...

  6. Python序列类型常用函数练习:enumerate() reversed() sorted() zip()

    Python序列类型常用函数练习 这里使用代码示例,练习使用序列类型的常用函数,包括: enumerate() reversed() sorted() zip() 直接看python代码 #enume ...

  7. python日历函数_Python—日历函数—日历模块的常用函数,calendar,常见

    Python-日历函数-日历模块的常用函数,calendar,常见 发表时间:2020-07-07 日历函数 calendar模块中提供了非常多的函数来处理年历和日历. 例如:打印2020年7月份的日 ...

  8. python内建常用函数

    #标题1# # python内建常用函数# #python内建常用函数 在这里插入图片描述 ![在这里插入图片描述](https://img-blog.csdnimg.cn/2020030211175 ...

  9. Pandas读取和将数据存储到多个sheet的excel以及read_excel函数常用参数详解

    Pandas读取和将数据存储到多个sheet的excel以及read_excel函数常用参数详解 Excel数据显示: read_excel函数常用参数详解 1.io 读取路径 个人比较喜欢第一种(r ...

最新文章

  1. 一套简单通用的Java后台管理系统,拿来即用,非常方便(附项目地址)
  2. 关于ABAP高级顾问应该掌握的技术
  3. python pandas缺失值处理_Pandas之缺失值处理
  4. python sqlite数据库_用Python进行SQLite数据库操作
  5. 分享一篇关于社区团购的竞品分析
  6. 【Spring学习】01
  7. 通达信版弘历软件指标_弘历指标源码:弘历软件主要功能是什么?选股精不精准?...
  8. Windows 7 64位系统下安装Cy+NS2经验(成功安装)
  9. Matlab保存imagesc函数没有缩放的伪彩图
  10. 晶振PCB layout注意事项
  11. 戴尔dell poweredge r730服务器系统安装以及raid配置详解教程
  12. [国家集训队]跳跳棋
  13. PHP二次元风格发卡系统源码荔枝发卡网
  14. 解决Chrome浏览器“隐私设置错误,您的链接不是私密连接”
  15. 如何在计算机面试中牵着面试官鼻子走?
  16. win10环境下搭建IIS图片服务器
  17. Oracle(三)常用的查询语句
  18. Uva207 PGA Tour Prize Money
  19. 南走1公里东走1公里北走1公里回原点
  20. 利用机器学习实施网络犯罪 6种有效途径触目惊心

热门文章

  1. 楼道灯人体红外感应电路(半隔离式)
  2. 基于Python实现头像戴上圣诞帽案例
  3. JS底层书写的简单Tab切换!
  4. PHP的输出缓冲区(转)
  5. 用Python实现数据结构中顺序表基本操作
  6. 算法专利的“卡脖子PTSD”综合症,到底能不能好了?
  7. 在水晶报表中使用Code128条形码
  8. JDK安装和配置教程
  9. win10 计算机操作记录,win10系统查看电脑的使用记录的操作方法
  10. 物理学专业英语(词汇整理)--------04