Python数据分析之数据高级处理——基于pandas模块的进阶

大家好,今天我们主要讲解pandas模块的进阶用法,包括数据的查找、替换、插入、删除、排序、筛选、运算,以及数据表的结构转换和拼接等。

一、数据的查找和替换

查找数据 使用模块中的isin()函数可以查看DataFrame是否包含某个值,演示代码如下:

import pandas as qq
data=qq.read_excel('D:/shujufenxi/qwe.xlsx')
data1 = data.isin(['a3','王明'])#在表中查找符合'a3'与'王明'的值,标为True,否则为False
data2 = data['姓名'].isin(['王明'])# 表示在姓名列查找值王明,等于的地方标为True,否则为False
print(data)
print(data1)
print(data2)

替换数据 使用replace()函数进行替换,代码演示如下:

import pandas as qq
data=qq.read_excel('D:/shujufenxi/qwe.xlsx')
data.replace('研发','技术',inplace=True)# 一对一替换,将'研发'替换为'技术'
data.replace(['研发','开发'],'技术',inplace=True)# 多对一替换,将'研发','开发'都替换为'技术'
data.replace({'研发':'技术','男':'man','女':'women'},inplace=True)# 多对多替换,将'研发'替换为'技术','男'替换为'man','女'替换为'women'
print(data)

二、数据的处理

插入数据 插入数据主要有以下两种方法:

  1. 以赋值的方法直接在数据表最右侧插入列数据

  1. 用insert()函数在数据表的指定位置进行插入。 代码演示:

import pandas as qq
data=qq.read_excel('D:/shujufenxi/qwe.xlsx')
qq.set_option('display.unicode.ambiguous_as_wide', True) # 这行以及下一行的意思为调整列标题与下面数据对齐
qq.set_option('display.unicode.east_asian_width', True) # 同上
data['等级']=['A','B','C','D','E','F','G','H']# 以赋值的方法在数据表最右侧插入列数据
data.insert(3,'等级',['A','B','C','D','E','F','G','H']) # 用insert()函数在数据表的指定位置进行插入
print(data)

删除数据 如要删除数据表中的数据,可以使用pandas模块中的drop()函数,删除列:

import pandas as qq
data=qq.read_excel('D:/shujufenxi/qwe.xlsx')
a=data.drop(['年龄','年终奖(w)'],axis=1) # 删除'等级','年终奖(w)'两列数据,axis=1,意思为按列删除
b= data.drop(data.columns[[3,6]],axis=1)# 删除数据表中的第3、6列
print(a)
print(b)

删除行 删除数据行与上面删除列的方法类似,只不过是需要将参数axis设置为0即可,其余代码参考以上删除行演示代码,在这里就不细细讲解。

查看缺失值:

import pandas as qw
data=qw.read_excel('D:/shujufenxi/qwe.xlsx')
print(data)
# 查看每一列的缺失值,可以用info()函数,例如print(data.info())
# 还可以使用isnull()函数判断是否为缺失值,例如:a=data.isnull()
# print(a)

缺失值的填充:

使用fillna()函数可将数据表中的所有缺失值填充为指定的值,演示代码如下:

import pandas as qw
data=qw.read_excel('D:/shujufenxi/qwe.xlsx')
a= data.fillna(0)# 将所有缺失值都替换为0
b= data.fillna({'籍贯':'陕西','薪资':'15000'}) #通过fillna()函数传入一个字典,将不同列中的缺失值设置为不同的填充值。
print(a)
print(b)

筛选数据,根据指定条件对数据进行筛选,代码演示如下:

import pandas as qw
data=qw.read_excel('D:/shujufenxi/qwe.xlsx')
a=data[data['ID']=='a3']# 筛选出数据表中ID为3的数据,==为比较运算符
b= data[data['薪资']>9000]#筛选出数据表中薪资>9000的数据
c= data[(data['薪资']>9000)& (data['性别']=='女')]# 筛选出数据表中薪资>9000,且性别为女的数据
d= data[(data['年终奖(w)']>13) | (data['籍贯']=='河南')]#筛选出数据表中年终奖>13的或者籍贯为河南的数据
print(a)
print(b)
print(c)
print(d)

三、数据表的处理

转置数据表的行列 演示代码如下:

import pandas as qw
data=qw.read_excel('D:/shujufenxi/qwe.xlsx')
a=data.T
print(a)

将数据表转换为树形结构 演示代码如下:

import pandas as qw
data=qw.read_excel('D:/shujufenxi/qwe1.xlsx')
a=data.stack()
print(a)

数据表的拼接 数据表的拼接是指将两个或多个数据表合并为一个数据表,用要用到merge()函数、concat()函数、append()函数,使用语法格式如下:

data1=qw.read_excel('D:/shujufenxi/qwe.xlsx')
a=qw.merge(data,data1,how='outer','on'='姓名')#使用merge()函数合并数据表,hou参数为合并两个表中所有的数据;on参数则是用来指定依据哪一列进行合并操作
b=qw.concat([data,data1],ignore_index=True)# 采用cincat()函数合并工作表,ignore_index参数重置行标签
c=data.append(data1)#采用append()函数合并工作表,也可以用于在数据表的末尾追加数据,如:c=data.append({'ID':a9,’姓名‘:'张一'},ignore_index=True)

结果在此就不一一演示,大家可以自己运行一下试试看。

四、数据的运算

获取数值分布状况:

import pandas as qw
data=qw.read_excel('D:/shujufenxi/qwe1.xlsx')
a=data.describe()
print(a)

计算相关系数:

a=data.corr()

分类汇总数据:

a=data.groupby()#括号内设置的参数为依据哪一列数据进行分组

创建数据透视表 数据透视表可对数据表中的数据进行快速分组和计算,pandas模块中的pivot_table()函数可以制作,演示代码如下:

import pandas as qw
data=qw.read_excel('D:/shujufenxi/qwe1.xlsx')
a=qw.pivot_table(data,values='年龄',index='姓名',aggfunc='sum')# 参数values用于指定要计算的列;index用于指定一个列作为数据透视表的行标签,aggfunc用于指定参数values的计算类型
print(a)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

python慕遥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值