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

Pandas按首列分组去重后将其余列值存储为列表的实现咨询

解决方案

你之前的代码仅指定了Year单列做聚合,因此其余列会被丢弃,直接对分组后的全量列执行聚合操作即可实现需求:

  1. 全列统一转为元组(匹配你期望的输出格式):
# 注意location列名大小写要和你实际DataFrame的列名保持一致
df_result = df_gdp_pop_years.groupby('location', as_index=False).agg(tuple)

如果需要存为列表格式,把agg的入参换成list即可。

  1. 若存在部分列需要特殊聚合规则的场景,可通过字典指定不同列的聚合逻辑,示例如下:
# 例如year和GDP列存为元组,人口列取平均值,其余列自动忽略
df_result = df_gdp_pop_years.groupby('location', as_index=False).agg(
    year = ('year', tuple),
    GDP = ('GDP', tuple),
    pop_avg = ('population', 'mean')
)

效果验证

用你提供的样例数据测试,输入:

location  year    GDP
0    AUT     1998  14...
1    AUT     2018  98...
2    AUS     1998  24...
3    AUS     2018  83...

执行第一种方案后输出:

location          year             GDP
0      AUT  (1998, 2018)  (14..., 98...)
1      AUS  (1998, 2018)  (24..., 83...)

完全匹配预期效果。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 19:45:06