折叠 Pandas 数据框中的行,每列具有不同的逻辑 [重复]

Posted

技术标签:

【中文标题】折叠 Pandas 数据框中的行,每列具有不同的逻辑 [重复]【英文标题】:Collapse rows in Pandas dataframe with different logic per column [duplicate] 【发布时间】: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的相关部分都有介绍。 【参考方案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,它可能会有所帮助

以上是关于折叠 Pandas 数据框中的行,每列具有不同的逻辑 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用另一个日期时间索引获取具有日期时间索引的 Pandas 数据框中的行?

从 pandas 数据框中删除具有空列表的行

在 Pandas 数据框中按组过滤具有最小值的行 [重复]

在 pandas 数据框中显示具有一个或多个 NaN 值的行

Python Pandas数据框中的行排序/计数

在pandas数据帧中为不同的行添加不同的类别