Python 3.6多进程场景下将含Dataframe的列表合并为单个Dataframe
将多进程返回的DataFrame列表合并为单个DataFrame
这问题太常见了!你已经通过pool.map()并行生成了多个结构一致的DataFrame并存在Data_List里,要把它们合并成一个大的DataFrame,用pandas的pd.concat()方法就能轻松搞定,步骤如下:
具体实现步骤
确保导入pandas库
首先得确保你的代码里已经导入了pandas:import pandas as pd合并DataFrame列表
直接调用pd.concat()传入你的DataFrame列表,记得加上ignore_index=True参数——它会帮你重置合并后的行索引,避免多个小DataFrame的索引重复冲突:# 合并列表中的所有DataFrame combined_df = pd.concat(Data_List, ignore_index=True)针对你给出的示例列表,合并后的
combined_df会把所有小DataFrame的行堆叠在一起,最终结构是:Date Value Series_Id 1985-01-01 106.92593 CANEPUINDXM 1985-02-01 114.69938 CANEPUINDXM 1995-01-01 192.91191 CHIEPUINDXM 1995-02-01 193.98785 CHIEPUINDXM ... ... ...
额外注意事项
- 如果你的
Data_List里可能存在空DataFrame或者None值(比如多进程任务中某些调用失败),可以先过滤掉无效项再合并:# 过滤掉空的或None的DataFrame valid_dfs = [df for df in Data_List if df is not None and not df.empty] combined_df = pd.concat(valid_dfs, ignore_index=True) - 如果各个小DataFrame的列名不完全一致,
pd.concat()会自动将缺失的列填充为NaN,所以最好确保每个Get_Series_Data方法返回的DataFrame结构完全一致,避免出现不必要的缺失值。
内容的提问来源于stack exchange,提问作者question.it
相关产品推荐
相关产品推荐

