如何将for循环输出结果填充拼接为完整pandas DataFrame
实现方法
核心逻辑是先收集循环内每轮生成的临时DataFrame,循环结束后一次性完成纵向拼接,避免逐次拼接的性能损耗。
修改后的完整可运行代码如下:
import pandas as pd # 初始化空列表,用于存储每轮循环生成的临时DataFrame temp_dfs = [] for a in range(1, 4): list1 = ["22", "23", "24", "25"] list2 = ["a", "b", "c", "d"] # 生成当前轮次的临时DataFrame current_df = pd.DataFrame({'Num': list1, 'Alpha': list2}) temp_dfs.append(current_df) # 纵向拼接所有临时DataFrame,重置索引得到连续行号 final_df = pd.concat(temp_dfs, ignore_index=True) print(final_df)
运行上述代码输出的结果和你预期的12行格式完全一致。
注意事项
- 不要在循环内部反复执行拼接操作:如果每轮循环都写
final_df = pd.concat([final_df, current_df]),每次拼接都会复制已有全量数据,数据量较大时运行速度会非常慢,先存列表再一次性拼接是pandas场景下的最优实践。 - 拼接时必须传入
ignore_index=True参数:如果省略该参数,拼接后的行索引会重复出现3组0-3的序号,无法得到你需要的0到11连续索引。
内容的提问来源于stack exchange,提问作者ladybug
相关产品推荐
相关产品推荐

