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

分组合并DataFrame后缺失'Amzius'列,如何修复?

问题修复方案

问题原因

当你用groupby('Amzius')计算均值时,'Amzius'会自动成为结果Series的索引,而非普通数据列。后续用pd.concat合并后,这个索引依然保持索引身份,不会出现在columns列表中,所以你看不到它。

修复方法

有两种简单的解决方式:

方法1:分组时保留'Amzius'为列

在groupby中添加as_index=False参数,让分组键保持为普通列,而非索引。之后用merge合并(比concat更适合关联键匹配场景):

df_grouped = df.groupby('Amzius', as_index=False)['Atlygis'].mean()
df_grouped1 = df.groupby('Amzius', as_index=False)['Kaina'].mean()

# 按'Amzius'列合并两个DataFrame
df_joined = pd.merge(df_grouped, df_grouped1, on='Amzius')
print(df_joined)
print(df_joined.columns.values)  # 此时会看到'Amzius'、'Atlygis'、'Kaina'三列

方法2:将现有结果的索引转为列

如果你已经得到了df_joined,可以直接调用reset_index()把索引转成普通列:

df_grouped = df.groupby('Amzius')['Atlygis'].mean()
df_grouped1 = df.groupby('Amzius')['Kaina'].mean()

df_joined = pd.concat([df_grouped, df_grouped1], axis=1, join='inner')
# 将索引'Amzius'转为普通列
df_joined = df_joined.reset_index()
print(df_joined)
print(df_joined.columns.values)  # 此时'Amzius'会出现在列列表中

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 22:59:52