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

使用Pandas groupby分组后如何正确访问DataFrame列?

问题原因

遍历Pandas的groupby对象时,每次迭代返回的是元组而非单独的DataFrame:

  • 元组第一个元素:分组的键值组合(格式为(symbol值, 日期值))
  • 元组第二个元素:对应分组的DataFrame

你直接用ohlc['symbol']访问元组,相当于给元组传入字符串索引,这违反了元组只能用整数/切片索引的规则,因此触发报错。

修正代码

将循环变量拆分为分组键和对应DataFrame两部分,即可正常访问:

df = pd.read_sql_query("SELECT * from ohlc_minutes", conn)
df['timestamp'] = pd.to_datetime(df['timestamp'])
seperate_days = df.groupby(['symbol', df['timestamp'].dt.date])
# 拆分分组键与对应DataFrame
for (symbol, date), ohlc_df in seperate_days:
    display(ohlc_df)
    # 直接获取当前分组的symbol值(来自分组键)
    print(f"当前分组symbol: {symbol}")
    # 或从DataFrame中获取symbol列(整列值一致)
    print(ohlc_df['symbol'].iloc[0])
替代写法

如果只需要处理分组后的DataFrame,也可以直接提取元组的第二个元素:

for item in seperate_days:
    ohlc_df = item[1]
    display(ohlc_df)
    # 后续处理逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 03:15:58