Dav*_*992 2 python dataframe pandas
我有 600 个数据帧保存并存储为 .pickle,我想将它们合并(或者更确切地说追加)到一个数据帧中。它们的总大小为 10GB。
当我阅读它们中的每一个并将它们附加到一个大 DataFrame 中,然后保存完整版本以进行分发时,整个过程在 16GB 机器上需要 2 个小时。
我认为这需要很多时间,因为每次我追加一个新的DataFrame时,系统都会为整个新的DataFrame分配新的内存空间?
我怎样才能更快地做到这一点?
我建议您一次性使用pd.concat()并传递所有数据帧,而不是一一附加它们。
Output = pd.concat([pd.read_pickle(r'location/'+x) for x in os.listdir('location')])
Run Code Online (Sandbox Code Playgroud)
我们可以使用列表推导式创建数据帧列表,假设此 pickle 文件保存在同一文件夹中,并用于pd.concat将它们全部连接到一个数据帧中。