pandas DataFrame 常用技巧 -- dataframe String互相转换

pandas DataFrame 常用技巧 – dataframe String互相转换

import  pandas as pd
from io import StringIO
data = {
1:{'a':1, 'b':2, 'c':3}
2:{'a':2, 'b'3, 'c':4}
}
df = pd.DataFrame(data = data)  # 初始化一个dataframe
df_string = StringIO(df.to_csv())  # 这里不能先建立好StringIO对象,再向里面写string, 否则会报错
del df
print(df)
df = pd.read_csv(df_string)

以上代码是将dataframe对象暂存到一个内存文件中, 当我们需要的时候,再从内存文件中还原出原始的dataframe。
这样做有什么好处那?比如,在使用redis作为暂存的时候,我们无法将dataframe直接存储到redis,需要先转换成
string类型。但是,pandas并没有提供直接从string转换回dataframe的工具,这时候,我们就可以使用内存文件,然后
利用pandas的read_csv方法来帮我们实现这个任务了。

这个时候,一定已经有人想到了,是不是使用pickle来做这件事请更好那?ok,给大家看看代码:

import pickle  
df_bytes = pickle.dumps(df)  
del df  
df = pickle.loads(df_bytes)  

简单,完美,ok

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值