Pandas分组聚合时保留重复值首行col1、末行col2的实现方法
解决方案
使用pandas的分组聚合agg方法,为不同列指定对应聚合规则即可实现需求:
- col1列使用
first聚合,取分组内第一条记录的值 - col2列使用
last聚合,取分组内最后一条记录的值 - col4列使用
sum聚合,对分组内所有值求和
对应实现代码如下:
# as_index=False 避免col3成为索引列 df = df.groupby('col3', as_index=False).agg( col1=('col1', 'first'), col2=('col2', 'last'), col4=('col4', 'sum') ) # 调整列顺序匹配你需要的输出格式 df = df[['col1', 'col2', 'col3', 'col4']]
如果使用的是pandas 0.25之前的旧版本,可使用字典格式传入聚合规则:
df = df.groupby('col3', as_index=False).agg({ 'col1': 'first', 'col2': 'last', 'col4': 'sum' }) df = df[['col1', 'col2', 'col3', 'col4']]
内容的提问来源于stack exchange,提问作者user14603676
相关产品推荐
相关产品推荐

