python - 如何有效地连接由 for 循环生成的数千个 pandas 数据帧?
问题描述
在读取不同文件的 for 循环中生成了数千个 dfs 的一致列,我正在尝试将它们合并/连接/附加到单个 df 中,combined
:
combined = pd.DataFrame()
for i in range(1,1000): # demo only
global combined
generate_df() # df is created here
combined = pd.concat([combined, df])
这最初很快,但随着combined
增长而变慢,最终变得无法使用。这个关于如何附加行的答案解释了如何将行添加到 dict 然后创建 df 是最有效的,但我不知道如何使用to_dict
.
有什么好的方法呢?我是以错误的方式接近这个吗?
解决方案
您可以创建 DataFrames 列表,然后concat
只使用一次:
dfs = []
for i in range(1,1000): # demo only
global combined
generate_df() # df is created here
dfs.append(df)
combined = pd.concat(dfs)
推荐阅读
- snowflake-cloud-data-platform - Snowpipe:仅加载第一行
- python - 转置并保存一列熊猫数据框
- python - 使用特殊规则过滤 django 中的对象
- python - Matplotlib:subplot2grid 中绘图外的颜色条
- javascript - 添加 chech/uncheck all 以过滤控制复选框输入
- javascript - 反应中的jQuery数据表分页
- java - Vaadin 21/Fusion - 从 Java 枚举生成的 ts 枚举模块将所有驼峰式大小写值更改为大写
- java - SWT Text 只允许输入数字
- r - 如何使用 libr 包编写 sas 数据集
- javascript - 为什么此输入类型=时间在某些带有“stepMismatch”的浏览器中无效:true?