【问题标题】:How to get rows of a DataFrame conditionally如何有条件地获取 DataFrame 的行
【发布时间】:2020-08-07 15:17:40
【问题描述】:

我有以下数据框:

我需要从这个创建一个新的 DataFrame,它只包含 col3 中每对唯一 col1 和 col2 值的最大值。最终结果需要如下所示:

例如,有 2 行 col1 是 a,col2 是 c。在一列中,col3 为 1,另一列中 col3 为 2。我只需要包含 col3 为 2 的行,因为 2 是 col3 的最大值,其中 col1 为 a,col2 为 c。

在不使其过于复杂的情况下,最优雅的方法是什么?

【问题讨论】:

标签: python python-3.x pandas dataframe


【解决方案1】:
df.groupby(['col1','col2'],as_index=False)['col3'].max()

【讨论】:

  • 这真的很优雅!如果有第 4 列,我也想保存该列的值,不管该行的值是什么?您的解决方案将潜在的第 4 列留在外面。
猜你喜欢
  • 1970-01-01
  • 2021-11-15
  • 1970-01-01
  • 2013-08-14
  • 2018-09-06
  • 2016-01-31
  • 2020-10-18
  • 2019-01-28
  • 1970-01-01
相关资源
最近更新 更多