pandas读写操作总结

《pandas读写操作总结》

简介

读写操作方便数据的迁移储存,pandas提供了非常丰富的接口,能够实现对二进制数据、文本文件、剪贴板内容、Excel、JSON格式、HTML格式和HDF5格式等数据的读写,操作非常方便。本文将介绍几个主要操作:

  • CSV格式文件读写;
  • Excel格式文件读写;
  • JSON格式文件读写;
  • HDF5格式文件读写。

CSV格式

该格式的文本文件内容都是以逗号  分隔, 比如有个叫 finthon.csv 的文件,包含以下内容:

可以使用 read_csv 方法读取该数据:

这样我们就得到了一个DataFrame,自动添加了索引。除了逗号分隔的数据,通过 sep 参数是可以指定分隔类型的。比如 finthon1.csv 有这样的数据:

数据中是通过 | 进行分隔,我们可以这样加载数据:

如果遇到数据集没有标题行的情况, finthon2.csv 文件内容:

我们可以为其分配默认的列名:

或者我们可以通过 names 参数为其分配自定义的列名:

如果不想用默认的索引,而是要将某列作为索引,可以通过 index_col 参数实现:

还可以传入多个列名,创建层次化索引:

还有一种情况,比如文件中有一些行的数据是我们不需要的, finthon3.csv 内容如下:

我们不想要文件中的注释行,此时就可以通过 skiprows 参数跳过不需要的行:

介绍完csv格式读取操作,接下来介绍写入操作,通过 to_csv 方法实现。我们有如下DataFrame:

写入 finthon4.csv 文件:

查看该文件,得到如下内容:

默认是以逗号 , 分隔,我们也可以指定分隔方式:

得到内容如下:

有时候我们并不需要保存索引或列名,可以这样实现:

header=False 表示不需要保存列名, index=False 表示不需要保存索引。得到的内容如下:

Excel格式

读取一个excel文件:

读取了 finthon.xlsx 文件表单名为 Sheet1 的内容, na_values 指定缺失值标记为 NA 。

写入excel文件:

df 保存为 foo.xlsx 文件,通过 sheet_name 指定表单名。

JSON格式

JSON格式是Web应用程序使用的标准格式之一,它的基本类型有对象(字典)、数组(列表)、字符串、数值、布尔值和null。对象中的所有键必须是字符串。

比如现有JSON格式文件 finthon.json 内容如下:

我们来读取这个文件:

在json格式中比较重要的参数是 orient ,它可以控制读写json文件的方式,有如下几个参数:

  • split:字典形式, {index: [index], columns: [columns], data: [values]} ;
  • records:列表形式,不包含index, [{column1: value1, column2: value2}, {column1: value3, column2: value4}] ;
  • index:字典形式, {index1: {column1: value1, column2: value2}, index2: {column1: value3, column2: value4}} ;
  • columns:字典形式, {column1: {index1: value1, index2: value2}, column2: {index1: value3, index2: value4}}
  • values:数据data的数组;
  • table:字典形式,版本0.23.0新增。

在上面读取 finthon.json 文件,默认使用的就是 orient=columns 方式。

通过保存如下DataFrame内容为json格式文件来说明以上参数的区别:

使用不同的方式:

选择不同的存储,在读取的时候最好指明读取的方式,不然可能引起错误。比如:

HDF5格式

这种格式用于磁盘上以二进制格式存储科学数据,对于那些非常大并且无法直接放入内存的数据集,选用HDF5格式更好。

我们可以在同一个文件中添加另一个对象:

从HDF文件中读取:

总结

本文主要介绍了CSV格式Excel格式JSON格式HDF5格式文件读写。可以看到读写的接口都非常类似,通过 read_ 读取,通过 to_ 写入;除此之外,还要注意不同的格式当中主要参数的设置。

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注

20 + 13 =