创建不同的泡菜文件迭代数据帧列表
Create different pickle files iterating a list of DataFrames
我正在尝试编写一个函数,该函数将从包含 DataFrame 的列表中写入 pickle 文件。我想遍历该列表并从每个 DataFrame 创建一个具有不同文件名的不同 pickle 文件。我写了这个函数:
def picklecreator(dflist):
a=1
for b in dflist:
b.to_pickle('filename_' + str(a) + '.pkl')
a=+1
return 1
这个函数只创建第一个 pickle 文件'filename_1.pkl'我怎样才能让它适用于我列表中的所有 DataFrame?
你可以这样做:
def picklecreator(dflist):
for i, b in enumerate(dflist):
b.to_pickle(r'd:/temp/filename_{:02d}.pkl'.format(i+1))
return 1
但我会改用 HDF 存储 - 它更灵活、更方便。
演示:
def save_dflist_hdfs(dflist, file_name_ptrn='d:/temp/data_{:02}.h5', **kwarg):
for i, df in enumerate(dflist):
df.to_hdf(file_name_ptrn.format(i+1), 'df{:02d}'.format(i+1), **kwarg)
return len(dflist)
那么你可以这样称呼它:
save_dflist_hdfs(dflist, r'd:/temp/data_{:02}.h5', format='t',
complib='blosc', complevel=5)
我认为问题出在代码上a=+1
。您应该改为 a += 1
。
我正在尝试编写一个函数,该函数将从包含 DataFrame 的列表中写入 pickle 文件。我想遍历该列表并从每个 DataFrame 创建一个具有不同文件名的不同 pickle 文件。我写了这个函数:
def picklecreator(dflist):
a=1
for b in dflist:
b.to_pickle('filename_' + str(a) + '.pkl')
a=+1
return 1
这个函数只创建第一个 pickle 文件'filename_1.pkl'我怎样才能让它适用于我列表中的所有 DataFrame?
你可以这样做:
def picklecreator(dflist):
for i, b in enumerate(dflist):
b.to_pickle(r'd:/temp/filename_{:02d}.pkl'.format(i+1))
return 1
但我会改用 HDF 存储 - 它更灵活、更方便。
演示:
def save_dflist_hdfs(dflist, file_name_ptrn='d:/temp/data_{:02}.h5', **kwarg):
for i, df in enumerate(dflist):
df.to_hdf(file_name_ptrn.format(i+1), 'df{:02d}'.format(i+1), **kwarg)
return len(dflist)
那么你可以这样称呼它:
save_dflist_hdfs(dflist, r'd:/temp/data_{:02}.h5', format='t',
complib='blosc', complevel=5)
我认为问题出在代码上a=+1
。您应该改为 a += 1
。