【问题标题】:Conditional addition of rows to a new column & deleting old column in Pandas Dataframe有条件地将行添加到新列并删除 Pandas Dataframe 中的旧列
【发布时间】:2021-12-01 23:11:06
【问题描述】:

我有一个数据框:

State County Candidate CandidateVotes Mode
South Carolina Beaufort Joe Biden 13713 ABSENTEE BY MAIL
South Carolina Beaufort Joe Biden 63 FAILSAFE
South Carolina Beaufort Joe Biden 33 FAILSAFE PROVISIONAL
South Carolina Beaufort Donald Trump 9122 ABSENTEE BY MAIL
South Carolina Beaufort Donald Trump 26495 ELECTION DAY
South Carolina Beaufort Donald Trump 42 FAILSAFE PROVISIONAL
Pennsylvania York Donald Trump 146733 TOTAL
Pennsylvania York Joe Biden 88114 TOTAL

模式可以是各种各样的东西,但总票数将始终是该候选人列的总数。此外,一些州/县将保留总数而不是分解所有内容。我要做的与底部列出的宾夕法尼亚州相同。

这是我想要的输出:

State County Candidate CandidateVotes Mode
South Carolina Beaufort Joe Biden 13809 TOTAL
South Carolina Beaufort Donald Trump 26537 TOTAL
Pennsylvania York Donald Trump 146733 TOTAL
Pennsylvania York Joe Biden 88114 TOTAL

我认为正确的做法是按州、县和候选人分组。从这里,为相应的候选人添加所有模式,并使用该总数创建一个新列。如果 Mode = 'TOTAL',只需将其移至新列,然后删除 Mode。

我该怎么做?

【问题讨论】:

    标签: pandas dataframe


    【解决方案1】:

    您可以使用数据集中的州、县和候选人三列进行分组并求和。

    df = df.groupby(['State', 'County', 'Candidate']).sum().reset_index()
    

    这将给出前四列的输出,然后您可以单独集成 Mode 列,因为它将具有静态值。

    df['Mode'] = 'Total'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-15
      • 2022-06-21
      • 1970-01-01
      • 2018-07-27
      • 1970-01-01
      • 2020-03-18
      • 2020-12-22
      • 1970-01-01
      相关资源
      最近更新 更多