python - 在 Pandas 中通过 "groupby"仅取一列的最大值

标签 python pandas

我有一个包含 10 列的数据框:

id        date         value
1233     2014-10-3     1.123123
3412     2015-05-31    2.123123
3123     2015-05-31    5.6234234
3123     2013-03-21    5.6234222
3412     2014-11-21    4.776666
5121     2015-08-22    5.234234

我想按 id 列分组并获取最新的 date。但我不想取 value 列的最大值。我想获取属于最大日期的此类行的值。

pd.groupby('id').max() 不起作用。我该如何解决?

最重要的是,我想保留数据集中的所有列。

最佳答案

或者您可以简单地使用 sort_value 然后 first

df.sort_values(['date', 'value'], ascending=[False, True]).groupby('id').first()

Out[480]: 
           date     value
id                       
1233 2014-10-03  1.123123
3123 2015-05-31  5.623423
3412 2015-05-31  2.123123
5121 2015-08-22  5.234234

关于python - 在 Pandas 中通过 "groupby"仅取一列的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45485416/

相关文章:

python - Plotly:如何使用折线图的下拉列表更新绘图数据?

python - Pandas read_csv 无法正确加载逗号分隔的 CSV

python - 如何根据 Pandas 中特定值的一列转换仅在一列中具有唯一值的 DataFrame

python - Pandas Dataframe - 具有条件/行迭代/上一行计算的最小函数

python - 从 keras dropout 层中提取 dropout mask?

python - 使用 For 循环参数在 Pandas Dataframe 上应用 Zip 函数

python - for循环在 Pandas 中使用iterrows

python - 如何对索引大于 X 的所有值求和?

python - __del__ 真的是析构函数吗?

python - 如何使用 imp 从另一个 python 脚本导入所有内容