[英]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.