创建不同的泡菜文件迭代数据帧列表

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