You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将for循环的输出结果追加到单个pandas DataFrame中

原代码每次循环都会重新赋值覆盖df对象,未保留上一次循环的计算结果,因此会输出多个独立的小DataFrame。

以下是符合要求的实现方案:

方案1:循环中逐行拼接(完全符合逐次追加的逻辑)

import pandas as pd
# 初始化空的目标DataFrame,提前定义列名
df = pd.DataFrame(columns=['filename', 'comments'])

for i in range(1, 5):
    p = i + 4
    # 生成当前循环的单行临时DataFrame
    temp_df = pd.DataFrame({'filename': [i], 'comments': [p]})
    # 将临时数据拼接到总DataFrame中,忽略原有小表的索引
    df = pd.concat([df, temp_df], ignore_index=True)

# 将索引从1开始计数,匹配需要的输出格式
df.index = df.index + 1
print(df)

输出结果:

filename comments
1         1        5
2         2        6
3         3        7
4         4        8

方案2:循环收集数据最后统一转DataFrame(性能更优)

如果循环次数较多,频繁调用concat会降低运行效率,可以先在循环中把所有行数据存入列表,循环结束后一次性生成最终DataFrame,同样仅通过循环完成数据填充:

import pandas as pd
# 初始化空列表存储每行数据
row_list = []

for i in range(1, 5):
    p = i + 4
    row_list.append({'filename': i, 'comments': p})

# 循环结束后统一转换为DataFrame
df = pd.DataFrame(row_list)
# 调整索引起始值
df.index += 1
print(df)

输出结果和方案1完全一致。

内容的提问来源于stack exchange,提问作者new_learner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 10:54:03