多个DataFrame的存储

datadf类型:list中包含若干个dataframe,由于每个dataframe都很大,现在需要把每个dataframe分别存储成一个csv方便读取
上图是list中存储的其中一个DataFrame,可以看到,其size非常大
尝试1:
为了省内存,把每个DataFrame转换成str格式进行存储

file= open('./temp_diff/strline.csv', 'w')  
for fp in datadf:
    file.write(str(fp))
    file.write('\n')
file.close()

打开strline.csv文件
如果对DataFrame进行操作需要转换一下数据格式

尝试2:
list转换成数组,然后存成npy,报错memoryerror,可能是需要很大的内存
在这里插入图片描述
尝试3:
每个dataframe直接存为csv文件,由于DataFrame的数据类型默认为float,精度太高,所以存储时十分耗内存,速度也是十分慢

for i,df in enumerate(datadf):
    df.to_csv("./temp_diff2/"+str(path[i])+".csv")

可以看到,每个csv文件夹很大
尝试4:
DataFrame中的数据只保留两位小数

for i,df in enumerate(datadf):
    f=lambda x: '%.2f'%x ####(由于dataframe默认为float类型,存储时十分浪费内存,所以将其保留两位小数)
    df=df.drop(["time"],axis=1)
    t3=df.applymap(f) 
    t3.to_csv("./temp_diff2/"+str(path[i])+".csv")

可以看到,与不做任何处理,直接存储csv相比,文件小了很多加载其中一个dataframe

data=pd.read_csv("./temp_diff2/**.csv");data

在这里插入图片描述
其中Unnamed:0 列为原先每个dataframe中的index,只需要 data.drop(["‘Unnamed: 0’"],axis=1),即可去除这一列

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值