Pandas按App ID分组合并Team、求和App Count并保留其余列问题咨询
解决方案
你之前的代码只指定了对Team列做聚合处理,其他列会被自动丢弃,直接通过agg方法为不同列配置对应聚合规则即可实现需求:
import pandas as pd # 定义每列的聚合规则 agg_config = { # Team列拼接合并 'Team': ', '.join, # App Count列求和 'App Count': 'sum', # 其余列同一App ID下值唯一,直接取第一条即可 'App Name': 'first', 'Due Date': 'first', 'Expiry Date': 'first', 'Server Name': 'first', 'Urgency': 'first' } # 按App ID分组执行聚合 processed_data = result.groupby('App ID', as_index=False).agg(agg_config) # 可选:调整列顺序和要求的输出顺序一致 processed_data = processed_data[['App ID', 'App Name', 'Due Date', 'Expiry Date', 'Team', 'Server Name', 'Urgency', 'App Count']] # 导出到Excel # processed_data.to_excel('output.xlsx', index=False)
补充说明
如果同一个App ID下,除Team、App Count之外的其他列存在多个不同值,可以按需修改聚合规则,比如需要保留所有值的话,也配置为, '.join即可。
内容的提问来源于stack exchange,提问作者user16545584
相关产品推荐
相关产品推荐

