python用pandas写入csv_python – 为什么在使用Pandas写入时,CSV文件小于HDF5文件?

import numpy as np

import pandas as pd

df = pd.DataFrame(data=np.zeros((1000000,1)))

df.to_csv('test.csv')

df.to_hdf('test.h5', 'df')

ls -sh test*

11M test.csv 16M test.h5

如果我使用更大的数据集,那么效果会更大.使用如下的HDFStore不会改变任何东西.

store = pd.HDFStore('test.h5', table=True)

store['df'] = np.zeros((1000000,1))

store.close()

编辑:

没关系.这个例子很糟糕!使用一些非平凡的数字而不是零来改变故事.

from numpy.random import rand

import pandas as pd

df = pd.DataFrame(data=rand(10000000,1))

df.to_csv('test.csv')

df.to_hdf('test.h5', 'df')

ls -sh test*

260M test.csv 153M test.h5

将数字表示为浮点数应该比将其表示为每个数字一个字符的字符串少占用字节数.这通常是正确的,除了我的第一个例子,其中所有数字都是’0.0′.因此,表示数字所需的字符不多,因此字符串表示小于浮点表示.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值