Python中Pandas详解之文件操作

发布时间:2023年12月26日

Pandas的文件读取与分析

Pandas是数据分析的重要工具,因此从外部读取数据的能力是十分重要的,常用的API如图

文件类型文件说明读取函数写入函数
CSV是以纯文本形式存储的,以逗号分隔的表格数据read_csvto_csv
HDF是一种高效存储和分发科学数据的层级数据格式read_hdfto_hdf
SQL是一种用格式化查询语言编写的数据库查询脚本文件read_sqlto_sql
JSON一种轻量级文本数据交换格式文件read_jsonto_json
html一种由超文本标记语言编写的网页文件read_htmlread_html
PICKLEPython内部支持的一种序列化文件read_pickleto_pickle
利用Pandas读取文件

Pandas可以读取到表格类型数据,转换成DF类型的数据,然后通过DF进行数据分析,数据预处理等操作

对于Pandas来说他的核心在于数据分析,而不是进行读写

需要注意的是,读取文件的方法配置了大量的参数,更多内容还需要阅读Pandas的官方文档

DataFrame的常用属性

这里一般就是用于显示DF对象中的数据

属性说明
dtypes返回各个列的数据类型
columns返回各个列的名称
axes返回行标签和列标签
ndim返回维度
size返回元素个数
shape返回一个元组,表示几行几列
values返回以个存储DF数值的NumPy的数组
DataFrame的常用方法
方法说明
head([n])/tail([n])前n行或者后n行数据,方括号表示可选参数
describe()返回所有列的统计信息
max()/min()返回所有列的最大值和最小值
mean()/median()返回均值和中位数
std()返回标准差
sample([n])从DF对象中随机抽取n个样本
dropna()删除所有缺失值的数据
count()对符合条件的记录计数
value_counts()查看某列有多少不同值
groupby()按照给定条件分组
DataFrame的条件过滤

和Series一样,我们可以通过布尔索引来提取DF的子集,过滤我们不需要的数据

DataFrame的切片操作

他的切片操作和NumPy二维数组的几乎一模一样,而且由于DF具有行标签和列标签,使他的切片操作更加方便了

DataFrame的排序操作

在DF中,我们可以根据某列或某几列对DF中的数据进行排序,默认升序

在sort_values方法中参数ascending为升序的意思,默认值为True

Pandas的聚合与分组运算

对数据分组并进行运算统计,是数据分析的重要环节

聚合

聚合是将多个数值按照某种规则聚合在一起,变成单个数据的转换过程

聚合的流程如下,先根据一个或多个键,拆分我们的Series或者DataFrame,然后根据每个数据块进行统计意义上的各种操作,例如平均值中位数等操作,还可以包含用户自定义的函数

我们可以通过agg方法来实施聚合操作,实际上其中的各个参数,才是其中的精华,通过设置参数,可以将函数作用在一个列或者多个列上

参数的函数名称是有官方提供的,以字符串形式出现,多个参数放在一个列表中即可

例如

df.列名.agg(['min','max','mean','median'])

我们就可以通过这种方式获取这一列的最小最大值,平均数与中位数了

需要注意的是,如果是自定义函数,就要直接给出函数名,而不应该传入字符串,同时也不需要括号

分组

groupby()是Pandas的一个高效的分组方法,可以通过各种名称,指标等内容对数据进行分组,再对其进行数据统计与分析

实际上如果我们单纯分组是没有什么意义的,分组的精髓就在于再次使用之前的统计方法,例如mean()、count()等

需要注意的是,我们如果想要获取分组之后的列数据,再将其合并,如果用双方括号,返回值就是DF对象,如果是单括号,返回值就是一个Series对象

例如

df.groupby(分组依据)[[列名]].mean()
df.groupby(分组依据)[列名].mean()

第一行就是返回值是一个DF对象,第二行则是Series对象

与之对应的,我们可以在分组之后再进行聚合运算,这样便能很方便的统计出对应数据的大量信息了

例如

df.groupby(分组依据)[列名].agg(['mean','std','skew'])

一般来说分组和聚合结合起来使用可以达到很好的效果

DataFrame还有许多其他的工具和特性,例如透视表,类SQL操作等如果想要系统学习还是需要各位通过官方文档,现用现查的方式

DataFrame中数据清洗方法

对于我们从巨大量级的互联网获取的数据,有很多都包含了不统一,不准确,有缺失的情况,因此我们在进行数据分析之前一定要进行数据清理

函数说明
isnull()存在缺失值返回True
notnull()不存在缺失值返回True
filna(0)给缺失值赋值,默认值为0
dropna()存在缺失值,无条件删除
dropna(how=‘nall’)一行或一列全是缺失值则删除
dropna(axis=1,how=‘all’)当列方向全是缺失值则删除列
dropna(axis=1,how=‘any’)列只要存在一个缺失值,删除列
dropna(thresh=5)行的有效值低于5个时,删除行

下一篇就是Python基础的最后一篇了,我们的Python部分在此也告一段落,之后会逐步更新Python与数据库,大数据计算等内容的,感谢各位的支持,如果你发现文章中有任何不严谨或者需要补充的部分,欢迎在评论区指出

文章来源:https://blog.csdn.net/ye_yumo/article/details/135217387
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。