补充讲解链接
pandas常用函数,个人常用的

1.重命名列名

#用rename函数对数据进行重命名
import pandas as pd
df=pd.DataFrame(data=[['x1','张三',177,92,1.5,'2019/3/23'],['x2','李四',151,84,2.3,'2019/3/24']],columns=['学号','姓名','身高','语文成绩','学分','日期'])
df=df.rename(columns={'语文成绩':'成绩'})
print(df)

2.增加列,删除列


import pandas as pd
df=pd.DataFrame(data=[['x1','张三',177,92,1.5,'2019/3/23'],['x2','李四',151,84,2.3,'2019/3/24']],columns=['学号','姓名','身高','语文成绩','学分','日期'])
#增加列
df['新列名']=[1,2]
df['新列名1']=df['语文成绩']*0.2#删除列
df=df.drop(columns=['语文成绩'])#方法1
del df['新列名'] #方法2print(df)

3.子集选择


import pandas as pd
df=pd.DataFrame(data=[['x1','张三',177,92,1.5,'2019/3/23'],['x2','李四',151,84,2.3,'2019/3/24'],['x3','王五',167,80,3.2,'2019/3/25'],['x4','韩六',175,77,1.2,'2019/3/26'],['x5','赵七',153,87,1.6,'2019/3/27']
],columns=['学号','姓名','身高','语文成绩','学分','日期'])#子集选择时,采用loc或ioc函数,loc读取 的是索引 ,而iloc读取的行数,相当于重新命名索引为 0,1,2...
print('读取索引范围[2,4]的数据\n',df.loc[2:4])
print('选择第2到第4行\n',df.iloc[1:4])
print('选择身高>160且成绩>80的数据,只要 姓名 学分 日期 \n',df.loc[(df['身高']>160) &(df['语文成绩']>80),['姓名','学分','日期']])
print('选择身高>160且成绩>80的数据, \n',df.loc[(df['身高']>160) &(df['语文成绩']>80)])

4.排序

import pandas as pd
df=pd.DataFrame(data=[['x1','张三',177,92,1.5,'2019/3/23'],['x2','李四',151,84,2.3,'2019/3/24'],['x3','王五',167,80,3.2,'2019/3/25'],['x4','韩六',175,77,1.2,'2019/3/26'],['x5','赵七',153,87,1.6,'2019/3/27']
],columns=['学号','姓名','身高','语文成绩','学分','日期'])#排序 ,根据语文成绩排序,ascending=True 表示升序,False 表示降序
print(df.sort_values(by=['语文成绩'],ascending=True))

5.缺失值处理,缺失值处理一般使用fillna


import pandas as pd
import numpy as np
df=pd.DataFrame(data=[['x1','张三',177,92,1.5,'2019/3/23'],['x2','李四',151,84,2.3,'2019/3/24'],['x3','王五',167,80,3.2,'2019/3/25'],['x4','韩六',175,77,1.2,'2019/3/26'],['x5','赵七',153,87,1.6,'2019/3/27']
],columns=['学号','姓名','身高','语文成绩','学分','日期'])#缺失值处理
#先将张三的成绩设为nan
df.loc[(df['姓名']=='张三'),'语文成绩']=np.NaN
df['语文成绩']=df['语文成绩'].fillna(80)
print(df)

6.异常值处理


import pandas as pd
import numpy as np
df=pd.DataFrame(data=[['x1','张三',177,92,1.5,'2019/3/23'],['x2','李四',151,84,2.3,'2019/3/24'],['x3','王五',167,80,3.2,'2019/3/25'],['x4','韩六',175,77,1.2,'2019/3/26'],['x5','赵七',153,87,1.6,'2019/3/27']
],columns=['学号','姓名','身高','语文成绩','学分','日期'])#异常值处理
#将大于 "均值+2倍标准差“ 认为是异常值,用"均值+2倍标准差”替代
abnormal=df['语文成绩'].mean()+2*df['语文成绩'].std()
df.loc[df['语文成绩']>abnormal,'语文成绩']=abnormal
print(df)

7.分组统计
pandas的分组统计使用groupby函数参数as_index=False 表示统计后返回DataFrame类型的结果,否则返回Series类型的统计结果

import pandas as pd
import numpy as np
df=pd.DataFrame(data=[['x1','张三',177,92,1.5,'2019/3/23','男','1'],['x2','李四',151,84,2.3,'2019/3/24','男','2'],['x3','王五',167,80,3.2,'2019/3/25','女','2'],['x4','韩六',175,77,1.2,'2019/3/26','女','1'],['x5','赵七',153,87,1.6,'2019/3/27','女','1']
],columns=['学号','姓名','身高','语文成绩','学分','日期','性别','班级'])print('按照班级和性别分组,统计每个分组的人数\n',df.groupby(by=['班级','性别'],as_index=False)['学号'].count())print('按照班级和性别分组,统计每个分组的平均分\n',df.groupby(by=['班级','性别'],as_index=False)['语文成绩'].mean())rank=df.groupby(by=['班级'],as_index=False)['语文成绩'].rank()
df['排名']=rank
print('按照班级分组,对组内学生按成绩排序\n', df)#对每个分组使用自定义函数
#agg 或者apply函数
def myfunc(series):return '最大值是:'+str(series.max())
print('对每个分组使用自定义函数\n',df.groupby(by=['班级','性别'],as_index=False)['语文成绩'].agg(myfunc))

8.apply
对于apply函数,其作用是对目标集合中的每个元素执行相同的操作


import pandas as pd
import numpy as np
df=pd.DataFrame(data=[['x1','张三',177,92,1.5,'2019/3/23','男','1'],['x2','李四',151,84,2.3,'2019/3/24','男','2'],['x3','王五',167,80,3.2,'2019/3/25','女','2'],['x4','韩六',175,77,1.2,'2019/3/26','女','1'],['x5','赵七',153,87,1.6,'2019/3/27','女','1']
],columns=['学号','姓名','身高','语文成绩','学分','日期','性别','班级'])#对姓名这一列的每个元素加字幕xm
def myfunc(x):return 'xm'+x
df['姓名']=df['姓名'].apply(myfunc)
print('对姓名这一列的每个元素加字幕xm\n',df)#对姓名这一列的每个元素删除字幕xm
df['姓名']=df['姓名'].apply(lambda x:str(x).replace('xm', ''))
print('对姓名这一列的每个元素删除字幕xm\n',df)#对于语文成绩这一列,如果有小于90分的,则该为90分
def myfunc1(x):if x<90:return 90else:return x
df['语文成绩']=df['语文成绩'].apply(myfunc1)
print('对于语文成绩这一列,如果有小于90分的,则该为90分\n',df)#分组应用applydef myfunc2(series):return series.max()
df2=df.groupby(by=['班级'],as_index=False)['语文成绩'].apply(myfunc2)
print(df2)

作者:电气 余登武…

pandas基本数据处理相关推荐

  1. python 取反_自从用了这招pandas 空数据处理方法,python编程速度提升了不少

    今天为大家带来的内容是:自从用了这招pandas 空数据处理方法,python编程速度提升了不少 文章内容主要介绍了pandas 空数据处理方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工 ...

  2. Python之pandas:pandas中数据处理常用函数(与空值相关/去重和替代)简介、具体案例、使用方法之详细攻略

    Python之pandas:pandas中数据处理常用函数(与空值相关/去重和替代)简介.具体案例.使用方法之详细攻略 目录 pandas中数据处理常用函数(isnull/dropna/fillna/ ...

  3. 推荐系统-应用Pandas进行数据处理

    1. PANDAS PANDAS是一个包,它使我们能够访问高性能.易于使用的工具和数据结构,以便在Python中进行数据分析. Python是一种运行很慢的语言.PANDAS通过使用C编程语言实现大量 ...

  4. 打印钻石图形python_Python pandas高效数据处理之绘图

    Pandas是Python中非常常用的数据处理工具,使用起来非常方便.它建立在NumPy数组结构之上,所以它的很多操作通过NumPy或者Pandas自带的扩展模块编写,这些模块用Cython编写并编译 ...

  5. pandas 空数据处理和数据过滤

    1.pandas数据过滤 import pandas as pd from pandas import DataFrame,Series import numpy as npdict1 = {'age ...

  6. 数据导入与预处理-拓展-pandas时间数据处理01

    数据导入与预处理-拓展-pandas时间数据处理01 Pandas时序数据系列博客 Pandas时间序列数据处理 1.好用的Python库 2.Pandas历史 3.时序数据处理 3.1 时序中的基本 ...

  7. 数据分析——使用pandas进行数据处理

    使用pandas进行数据处理 概念介绍 pandas模块介绍 Series和DataFrame Series简介 DataFrame简介 DataFrame的常用属性方法 创建DataFrame Da ...

  8. 数据分析之Pandas缺失数据处理

    ↑↑↑关注后"星标"Datawhale每日干货 & 每月组队学习,不错过Datawhale干货 作者:耿远昊,Datawhale成员,华东师范大学Pandas 是一个强大的 ...

  9. 【Python】pandas 缺失数据处理大全(附代码)

    之前一直在分享pandas的一些骚操作:pandas骚操作,根据大家反映还不错,但是很多技巧都混在了一起,没有细致的分类,这样不利于查找,也不成体系. 利用闲暇之余将有关数据清洗.数据分析的一些技能再 ...

  10. 经常被人忽视的:Pandas 文本数据处理!

    毋庸置疑,Pandas是使用最广泛的 Python 库之一,它提供了许多功能和方法来执行有效的数据处理和数据分析. 我们平时的操作,大多围绕着数字的处理,这是因为大家习惯将表格数据与数字联系起来.然而 ...

最新文章

  1. python安装psycopg2
  2. 敏捷个人手机应用:如何使用时中法目标
  3. cgo linux arm,Golang交叉编译各个平台的二进制文件
  4. [2018/11/14] 学习的思考
  5. 转:智能卡测试操作系统技术
  6. ubuntu指令模式修改IP等信息
  7. 【HBuilder】手机App推送至Apple App Store过程
  8. Java Web Start实例
  9. 3-1numpy基本操作
  10. poj1258Agri-Net
  11. 解决Vmware虚拟机中没有网络连接Ubuntu无法上网
  12. 悲观锁、乐观锁、单版本并发控制、多版本并发控制 关系
  13. 高级商务办公软件应用【6】
  14. 什么是深度卷积神经网络,卷积神经网络怎么学
  15. 最新版MySQL 8.0.22(Windows 64位)下载安装详细方法
  16. 在自己的项目中调用别人的库的方法(static lib库,dynamic lib库以及dll动态库)
  17. ens2sym <- select(org.Hs.eg.db, keys=row.names(pc9_removebatch_b12),columns=c(“ENTREZID“,“SYMBOL“),
  18. 砥砺前行 智领未来 | 美格智能2022年半年度经营管理会议顺利召开
  19. SuperMap三维专题之3dsMax数据——对接篇
  20. MATLAB学习系列--绘制函数曲线

热门文章

  1. Spring Boot-自动配置之底层原理
  2. java 对象转json,java首字母小写,判断方法是否为javabean方法
  3. Spanning Tree with One Fixed Degree
  4. Minimum Integer
  5. Just a Simple Problem
  6. springboot项目中的注解 启动项目的方式 解决spring的bean.xml配置不生效 spring的基础JDBC配置
  7. 软件工程概论 课堂练习【静态结构建模——画出相应的对象模型】
  8. redis实现令牌桶算法思路
  9. Android NDK学习笔记3:JNI访问Java属性、方法
  10. Android Bitmap 研究与思考(上篇)