在Python中附加Pickle文件

在Python中附加Pickle文件,python,pandas,dataframe,pickle,Python,Pandas,Dataframe,Pickle,我有100个数据帧(格式完全相同)作为100个pickle文件保存在磁盘上。这些数据帧每个大约有250000行长。我想将所有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.r

我有100个数据帧(格式完全相同)作为100个pickle文件保存在磁盘上。这些数据帧每个大约有250000行长。我想将所有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文件,取消序列化,附加数据帧,然后再次序列化它?或者有没有更快的方法?有了所有的数据,我的速度变慢了

您可以使用
列表理解
,将每个
df
附加到
列表
,并且只附加一次:

什么是相同的:

dfs = []
for filename in glob.glob('files/*.pkl'):
    newDF = pd.read_pickle(filename)
    dfs.append(newDF)
df = pd.concat(dfs, 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'))))