建议收藏:12个Pandas数据处理高频操作

本文详细介绍了Pandas库在Python中进行数据分析的12个常见操作,包括统计负数、转换数据、计数、修改表头和索引、列位置调整、查询、排序、apply函数、数据合并、拷贝以及行和列的特定操作,为数据处理提供实用技巧。
摘要由CSDN通过智能技术生成
  • 简单说说

  • 总结分享

  • > 1 统计一行/一列数据的负数出现的次数

  • > 2 让dataframe里面的正数全部变为0

  • > 3 统计某列中各元素出现次数

  • > 4 修改表头和索引

  • > 5 修改列所在位置insert+pop

  • > 6 常用查询方法query

  • > 7 数据存储时不要索引

  • > 8 按指定列排序sort_values

  • > 9 apply 函数运用

  • > 10 Pandas数据合并

  • > 11 Pandas Dataframe拷贝

  • > 12 对于列/行的操作

简单说说

Panda是一个快速、强大、灵活且易于使用的开源数据分析和操作工具,在Python环境下,我们可以通过pip直接进行安装。

pip install pandas   

在Python代码中使用pandas首先需要导入,:

import pandas as pd   

创建一个示例数据:

# 统计一行/一列数据的负数出现的次数   df = pd.DataFrame(       {'a':[1,-3,0,1,3],        'b':[-1,0,1,5,1],        'c':[0,-2,0,-9,0]})   df   

总结分享

> 1 统计一行/一列数据的负数出现的次数

# 获取到每一行的复数个数   # 要获取列的话,将axis改成0即可   num_list = (df < 0).astype(int).sum(axis=1)   num_list   

> 2 让dataframe里面的正数全部变为0

# 直接了当   df[df>0] = 0   df   

> 3 统计某列中各元素出现次数

  • 默认情况,直接统计出指定列各元素值出现的次数。
# 默认情况,统计b列各元素出现次数   df['b'].value_counts()   

  • 最好奇的bins参数,按bins分割区间,统计落在各区间内元素个数
# 按指定区间个数bin,元素起始值分割区间,统计表格中落在各区间内元素个数   df['b'].value_counts(bins=3)   

  • normalize参数,计算各元素出现次数占比
# normalize参数 出现次数/总数据个数    df['b'].value_counts(normalize=True)   

还有sort和ascending,可以按指定方式对统计结果进行排序。

> 4 修改表头和索引

  • 修改表头名称
# 修改表头名称   columns = {'a': 'A', 'b': 'B'}   df.rename(columns=columns, inplace=True)   df   

  • 设置特殊索引
# 设置特殊索引   df.index = ['a', 'b', 'c', 'd', 'e']   df   

  • 删除索引
# 删除索引   df.reset_index(drop=True, inplace=True)   df   

> 5 修改列所在位置insert+pop

insert在指定位置插入某列值;pop按列名取出某列(同时会删掉该列)。

# 将A列移到最后   # 新增列位置,新增列名,新增列的数值   df.insert(2,'A',df.pop('A'))   df   

> 6 常用查询方法query

  • 直接查询
# 找出c所有c值小于0的行   df.query("c<0")   

  • query+contains模糊查询
# 插入一列   df.insert(0,'name',['张三', '张华', '李四', '王五', '李逵'])   # 查找名字里包含三、四、五的用户数据   df.query("name.str.contains('三|四|五')", engine='python')   

> 7 数据存储时不要索引

设置index为None即可。

df.to_csv('测试数据.csv', encoding='utf-8-sig', index=None)   

> 8 按指定列排序sort_values

sort_values函数,通过by参数可以指定按哪些列进行排序,还可以设置ascending指定排序方式(升序或者降序,默认降序)

# by 指定排序列 na_position nan值放的位置 开头还是尾部   df.sort_values(by=['name'],na_position='first')   

> 9 apply 函数运用

# A B 两列都每个元素值都+1   df[['A', 'B']].apply(lambda x:x+1)   

其他更高级应用,可以查看之前分享的文章Pandas数据分析,你不能不知道的技能

DataFrame.apply(func,    axis=0, broadcast=False,    raw=False, reduce=None, args=(), **kwds)   

> 10 Pandas数据合并

进行数据合并前,首先需要确定合并的数据的表头都是一致的,然后将他们依次加入一个列表,最终使用concat函数即可进行数据合并。

# 现将表构成list,然后再作为concat的输入   df1 = df[0:1]   df2 = df[2:4]   df3 = df[3:5]   frames = [df1, df2, df3]   df4 = pd.concat(frames)   df4   

> 11 Pandas Dataframe拷贝

  • 深拷贝,df1改变,df不会变
# 深拷贝,df1改变,df不会变   df1 = df.copy(deep=True)   print(f"df\n{df}\ndf1\n{df1}")   

  • 将原数据df的name列的第一个元素改为zs,会发现,df改动,不会影响df1。
df['name'][0] = 'zs'   print(f"df\n{df}\ndf1\n{df1}")   

  • 浅拷贝,df2改变,df也会变 等同df2 = df
# 浅拷贝,df2改变,df也会变  等同df2 = df   df2 = df.copy(deep=False)   print(f"df\n{df}\ndf2\n{df2}")   
  • 将原数据df的name列的第一个元素改为张三,会发现,df改动,df2也会一起改动。
df['name'][0] = '张三'   print(f"df\n{df}\ndf2\n{df2}")   

关于深浅拷贝相关介绍和应用,大家可以查看之前的分享别再弄不清Python 深拷贝和浅拷贝了!

> 12 对于列/行的操作

  • 删除指定行/列
# 行索引/列索引 多行/多列可以用列表   # axis=0表示行 axis=1表示列 inplace是否在原列表操作    # 删除df中的c列   df.drop('c', axis=1, inplace=True)   df   

  • 取出指定列/行
# 不知道列名,取出表格最后两列   df3 = df.iloc[:, -2:]     # 知道列名,取出name和A两列   df4 = df.loc[:, ['name', 'A']]     print(f"df3\n{df3}\ndf4\n{df4}")   

# 重新设置下索引   df.index = ['a1', 'a2', 'a3', 'a4', 'a5']      # 不知道行索引,取出表格前两行   df5 = df.iloc[:2, :]     # 知道行索引,取出a1和a3两行   df6 = df.loc[['a1', 'a3'], :]     print(f"df5\n{df5}\ndf6\n{df6}")   

  • 交换两列指定值
# 将B列中小于0的元素和A列交换   # 筛选出B列中小于0的行   flag = df['B'].astype(int).map(lambda x: x<0)   # 通过布尔提取交换两列数据   df.loc[flag, 'B'], df.loc[flag, 'A'] = df.loc[flag, 'A'], df.loc[flag, 'B']   df   

以上就是“建议收藏:12个Pandas数据处理高频操作”的全部内容,希望对你有所帮助。

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

二、Python必备开发工具

img

三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

五、Python练习题

检查学习结果。

img

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

img

最后祝大家天天进步!!

上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值