pel*_*les 2 python pickle dataframe python-3.x pandas
你好,我有 4 个 pandas 数据框:df1、df2、df3、df4。我喜欢做的是使用 迭代(使用 for 循环)此数据帧的保存to_pickle。我所做的是这样的:
out = 'mypath\\myfolder\\'
r = [ orders, adobe, mails , sells]
for i in r:
i.to_pickle( out + '\\i.pkl')
Run Code Online (Sandbox Code Playgroud)
该命令很好,但它不会用他的名字保存每个数据库,而是覆盖相同的数据库i.pkl(我认为因为我的代码不正确)似乎它不能用他的名字重命名每个数据库(例如,对于 for 循环订单内的订单与涉及的订单数据帧一起保存名称i.pkl等)我期望的是保存4个数据帧,并在对象r中插入插入的名称(例如:orders.pkl,adobe.pkl,mails.pkl,sells.pkl)
我怎样才能做到这一点?
您无法对变量名称进行字符串化(这不是您通常会做的事情),但您可以做一些简单的事情:
import os
out = 'mypath\\myfolder\\'
df_list = [df1, df2, df3, df4]
for i, df in enumerate(df_list, 1):
df.to_pickle(os.path.join(out, f'\\df{i}.pkl')
Run Code Online (Sandbox Code Playgroud)
如果您想为文件提供自定义名称,我的建议是:使用字典。
df_map = {'orders': df1, 'adobe': df2, 'mails': df3, 'sells': df4}
for name, df in df_map.items():
df.to_pickle(os.path.join(out, f'\\{name}.pkl')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4573 次 |
| 最近记录: |