pandas文件类型

pandas可以操作多种类型的文件, 为什么要有那么多种文件类型, 不可以统一成一种吗?

答案当然是不可以的, 例如我们熟知的CSV, HDF5, JSON都有他们独特的优点, 这些优点又不能兼得, 我们在生产环境中一般考虑如下几个特点

1. 数据文件格式是否能够跨平台
2. 数据文件是否支持压缩
3. 数据文件是否可读
4. 数据文件是否能写入多种数据

CSV: 跨平台, 支持文件压缩, 可读性高, python写入多类型数据不好区分

例如:

import numpy as np
import pandas as pd

row_index = ["a" + str(i) for i in range(10)]
col_index = ["b" + str(i) for i in range(10)]
data1 = pd.DataFrame(np.random.randint(0, 10, (10, 10)), index=row_index, columns=col_index)
data2 = pd.DataFrame(np.random.randint(0, 10, (10, 10)), index=row_index, columns=col_index)
data1.to_csv("./demo02.csv", mode='w') 
data2.to_csv("./demo02.csv", mode='a')
print(pd.read_csv("./demo02.csv"))

pandas文件类型

可见CSV中存放多类型数据是不方便的, 结果读出来后, 得自己去做处理

HDF5:跨平台, 支持压缩(压缩效果较CSV强), 支持多种类型数据写入, 没有可读性

数据处理时, 推荐使用HDF5

import numpy as np
import pandas as pd

# hdf 可以在存储数据的时候指定 key, 而存储多种类型数据, 方便使用
data1.to_hdf("./demo03.h5", key="data1", mode="w")
data2.to_hdf("./demo03.h5", key="data2", mode="a")
pd.read_hdf("./demo03.h5", key="data1")

JSON: 跨平台, 不支持压缩, 不支持多种数据类型, 具有可读性

# pandas 操作 json 数据时, orient 参数不同, 所得结果不同
data1.to_json("./demo04.json", orient="split", )
data1.to_json("./demo05.json", orient="records")
data1.to_json("./demo06.json", orient="index")
data1.to_json("./demo07.json", orient="columns")
data1.to_json("./demo08.json", orient="values")

以上是常用的三种数据文件类型, 推荐使用HDF5做数据共享, 传输

上一篇:AOP(Aspect Orient Programming)


下一篇:css3的box方法实现水平垂直居中