【问题标题】:Group by without losing a column [duplicate]分组而不丢失一列[重复]
【发布时间】:2021-11-20 13:09:47
【问题描述】:

我正在尝试从dataset 中获取每个州的选举获胜者,该dataset 拥有 2020 年总统选举中每个县的选票。

我从这个开始

    data = pd.read_csv('..\Data\president_county_candidate.csv', lineterminator='\n')
    
    group = data.groupby(
        ['state', 'candidate'], as_index=False
    ).agg(
            totalVoteSum=('total_votes', 'sum')
    )
    group

目前的结果是这样的 click

我现在想要的是获胜候选人的州列表,例如

State Candidate Votes
Alaska Donald Trump 1441168
Alabama Donald Trump 189892

我试过了:

group = group.groupby(
    ['state'], as_index=False
).agg(
        winner=('totalVoteSum', 'max')
)
group

给出正确结果但跳过候选列。

如何让列保留而不按它进行分组,这显然会给出错误的结果?

【问题讨论】:

    标签: python pandas dataframe pandas-groupby


    【解决方案1】:

    这可行,但我不确定如何:

    idx = group.groupby(['state'])['totalVoteSum'].transform(max) == group['totalVoteSum']
    
    group[idx]
    

    谢谢RJ Andriaansen

    【讨论】:

      猜你喜欢
      • 2017-01-19
      • 1970-01-01
      • 2016-09-15
      • 1970-01-01
      • 2021-05-08
      • 1970-01-01
      • 2018-05-06
      • 1970-01-01
      • 2021-07-06
      相关资源
      最近更新 更多