【问题标题】:Collapse rows in Pandas dataframe with different logic per column [duplicate]折叠 Pandas 数据框中的行,每列具有不同的逻辑 [重复]
【发布时间】:2018-10-08 15:44:27
【问题描述】:

我想折叠与给定列的值匹配的数据框行,但必须使用不同的逻辑折叠其余列。示例:

City           ColumnA   ColumnB
Seattle        20        30
Seattle        30        20
Portland       25        25
Portland       10        40

我想按城市折叠,例如,我希望 ColumnA 保持最低值,而 ColumnB 保持平均值。结果应如下所示:

City           ColumnA   ColumnB
Seattle        20        25
Portland       10        32.5

这只是一个例子,在我的实际问题中,我想应用更复杂的逻辑而不是 min() 或 mean()。

正确,最干净和最简单的方法是什么?谢谢。

【问题讨论】:

  • 这在docs的相关部分都有介绍。

标签: python pandas dataframe pandas-groupby


【解决方案1】:

使用groubpy.agg

df.groupby('City', as_index=False).agg({'ColumnA':'min', 'ColumnB':'mean'})

       City  ColumnA  ColumnB
0  Portland       10     32.5
1   Seattle       20     25.0

【讨论】:

  • 谢谢!如果我要应用的逻辑不是 min() 或 mean(),而是自定义的东西怎么办?
  • .agg 可能有点棘手,这取决于你想做什么,但看看here,它可能会有所帮助
猜你喜欢
  • 2017-09-16
  • 2021-09-03
  • 1970-01-01
  • 2018-09-29
  • 1970-01-01
  • 1970-01-01
  • 2021-01-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多