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

Pandas使用for循环生成DataFrame仅输出最后一行如何解决

问题原因
  • 变量名笔误:循环内定义的增长率变量为Growth,但构造字典时使用了不存在的变量EPSGrowth,直接运行会抛出变量未定义的错误
  • DataFrame创建位置错误:df = pd.DataFrame(data)代码在for循环外部执行,只会读取循环最后一次迭代生成的data数据(对应股票SQ),最终仅生成单行数据
  • 定义的stocksfinal列表未参与DataFrame构造逻辑,向其中追加的数据没有任何作用
修复代码(易理解版本)
import pandas as pd
stocks = ['AMZN', 'ZM', 'SQ']
# 存储每次循环生成的单行DataFrame
df_list = []
for stock in stocks:
    Growth = 10
    Value = 8
    Discount = 2
    data = {
        'Stock': [stock],
        'Growth': [Growth],
        'Value': [Value],
        'Discount': [Discount]
    }
    df_list.append(pd.DataFrame(data))
# 循环结束后合并所有行生成完整DataFrame
df = pd.concat(df_list, ignore_index=True)
print(df)
运行输出
Stock  Growth  Value  Discount
0  AMZN      10      8         2
1    ZM      10      8         2
2     SQ      10      8         2
更高效的写法(无需循环创建临时DataFrame)
import pandas as pd
stocks = ['AMZN', 'ZM', 'SQ']
# 提前构造对应每列的空列表
data = {
    'Stock': [],
    'Growth': [],
    'Value': [],
    'Discount': []
}
for stock in stocks:
    data['Stock'].append(stock)
    data['Growth'].append(10)
    data['Value'].append(8)
    data['Discount'].append(2)
df = pd.DataFrame(data)
print(df)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 11:45:03