繁体   English   中英

在 Python 中附加 Pickle 文件

[英]Appending Pickle Files in Python

我有 100 个数据帧(格式完全相同)作为 100 个 pickle 文件保存在我的磁盘上。 这些数据帧每个大约有 250,000 行长。 我想将所有 100 个数据帧保存在 1 个数据帧中,我想将其作为 1 个 pickle 文件保存在我的磁盘上。

到目前为止,这是我正在做的事情:

path = '/Users/srayan/Desktop/MyData/Pickle'
df = pd.DataFrame()
for filename in glob.glob(os.path.join(path, '*.pkl')):
    newDF = pd.read_pickle(filename)
    df = df.append(newDF)
df.to_pickle("/Users/srayan/Desktop/MyData/Pickle/MergedPickle.pkl")

我知道 pickle 序列化数据框,但我是否有必要获取我的 pickle 文件,反序列化它,附加数据框,然后再次序列化它? 还是有更快的方法来做到这一点? 有了我拥有的所有数据,我的速度越来越慢

您可以使用list comprehension将每个df附加到list ,并且只添加一次concat

files = glob.glob('files/*.pkl')
df = pd.concat([pd.read_pickle(fp) for fp in files], ignore_index=True)

什么是相同的:

dfs = []
for filename in glob.glob('files/*.pkl'):
    newDF = pd.read_pickle(filename)
    dfs.append(newDF)
df = pd.concat(dfs, ignore_index=True)

一行更紧凑的版本:

df = pd.concat(map(pd.read_pickle, glob.glob(os.path.join(path, '*.pkl'))))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM