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"))

在这里插入图片描述

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

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

数据处理时, 推荐使用HDF5

现在使用 DataFrame.to_hdf()方法时, 路径中含有中文的时候, 会报错, 这个Bug尚未修复, 要养成编码过程中不要使用中文的习惯, 减少不必要的Bug

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做数据共享, 传输

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值