Pandas处理表格基础

现在使用Python处理表格类数据(excel/csv)已经成为工作不可或缺的技能,尤其大数据量的分析筛选转换,Python更可以提供无与伦比的优势,使用Python处理数据,那Pandas就肯定绕不开,这篇就是Pandas的简单应用。

Pandas 数据分析包

使用只需引入即可

import pandas as pd #引入Pandas

处理表格

  1. 获取表格数据
    我们日常大部分情况都会使用excel,所以这次使用Pandas来处理excel作为例子
    数据准备Person.xlsx:在这里插入图片描述
path = '/Users/lishiwen/Downloads/' #文件路径
fileName = 'Person' #文件名
excel = pd.read_excel(path + fileName + '.xlsx') #pandas读取excel数据
df = pd.DataFrame(excel) #数据转化为pd中的dataframe格式,为后续处理做准备
df #打印

结果:
在这里插入图片描述
2. 一些查看表格的基本信息的方法:

在这里插入图片描述

  1. dataframe有宽表转长表的方法,可以更好的展现数据维度与组合
df.melt()#宽数据转长数据

结果:

在这里插入图片描述

df.melt(id_vars=["姓名","年龄","体重","性别","身高"])  # 转长数据应用场景

结果:在这里插入图片描述

上面是一些pandas的dataframe的一些基础属性,日常数据处理需要一些对数据的处理,下面开始对表格进行基础操作

  1. 筛选数据
df[ df.性别 == "男" ]#筛选性别为男的数据

结果: 在这里插入图片描述

上面的数据筛选出我们需要的男性数据,但是可以看到索引还是之前的索引,可能不是我们希望展示的,所以需要重制索引

df2 = df[ df.性别 == "男" ] #df2为男性数据
df2.index = range(len(df2)) #重制索引
df2

结果:在这里插入图片描述

  1. 根据条件添加列数据

在处理表格时,会有根据某列的数据,新增一列新的数据,这时候可能就会需要用到判断或计算式

df['小,初,高'] = df.apply(lambda x: '小学' if x.年级 < 7 else '初中' if 6 <x.年级 < 10 else '高中', axis=1)  #根据年级判断新增列,内容为小学,初中,高中
df

结果:在这里插入图片描述

  1. 根据某列值修改其他列
df['学费']=0 #增加一列学费 默认0
df.loc[df['小,初,高'] == '小学', '学费'] = 100 #根据条件修改数据
df.loc[df['小,初,高'] == '初中', '学费'] = 200 #根据条件修改数据
df.loc[df['小,初,高'] == '高中', '学费'] = 300 #根据条件修改数据
df

结果: 在这里插入图片描述

  1. 分组查看

表格处理中肯定会有希望通过某一维度聚合查看其他类型数据,这就用到了分组

df.groupby(['年级','班级','姓名']).mean() # 对年级,班级,姓名分组查看

结果:在这里插入图片描述

  1. 绘图

pandas处理数据的能力是毋庸置疑的,但是他更加强大是因为它还可以绘图,可以根据你的数据绘制出你想要的图表,可以更直观的分析数据

可以直接使用df.plot()进行绘图,但是表格数据内有中文,绘图时会做警告,并且展示不了中文,所以需要多一个引用import matplotlib.pyplot as plt 因为pandas的plot调用的matplotlib绘图,通过plt设置文字编码即可。

import matplotlib.pyplot as plt #引入
plt.rcParams['font.sans-serif'] = ['Arial Unicode MS'] #设置文字编码,这是mac的文字,win可以使用['SimHei']
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号

df3 = df.groupby(['年级','班级','姓名']).mean() # 对年级,班级,姓名分组 赋值df3
df3.rename(columns={
    
    '年龄':'age'},inplace=True) #更换列名,不改编码也可以改为英文
df3.plot()

结果:在这里插入图片描述

上面就是使用pandas处理表格数据的简单应用场景,pandas处理表格只有你想不到,没有它做不到的。更多使用参见它的使用手册

猜你喜欢

转载自blog.csdn.net/VincentLee7/article/details/125954026