- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个数据框,其中有两列,id
和 date
。
df = pd.DataFrame([[1, '2019-05-20'], [1, '2019-05-20'], [1, '2018-04-23'], [2, '2020-01-01'], [2, '2020-01-01'], [2, '2019-12-31']], columns=['id', 'date'])
id date
1 2019-05-20
1 2019-05-20
1 2018-04-23
2 2020-01-01
2 2020-01-01
2 2019-12-31
对于每个唯一的id
,我想选择具有最新日期
的所有行。所以我理想的解决方案应该是这样的:
id date
1 2019-05-20
1 2019-05-20
2 2020-01-01
2 2020-01-01
我通过按 id
对数据帧进行分组来实现此目的,然后使用 idxmax
函数为每个“id”选择最新日期,如下所示:
df[df.groupby('id').date.idxmax()]
但是,这只会为我提供每个具有最新日期
的唯一id
的第一行,因此我最终得到以下结果:
id date
1 2019-05-20
2 2020-01-01
有没有一种方法可以使用 idxmax
函数选择每个 id
具有最高日期值的所有行?我在 pandas github repo 上看到有一个 PR 解决了这个问题( https://github.com/pandas-dev/pandas/pull/35257 ),但这个 PR 已关闭且未获得批准。预先感谢您。
最佳答案
您可以使用max
和自合并:
df.groupby('id', as_index=False).date.max().merge(df)
输出:
id date
0 1 2019-05-20
1 1 2019-05-20
2 2 2020-01-01
3 2 2020-01-01
或者,您可以设置每个日期重复值的索引,然后使用 idxmax
:
df.index = df.groupby('date').ngroup()
df.loc[df.groupby('id').date.idxmax()]
关于python - 在 Pandas 中使用 idxmax 保留重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65138126/
问候,我有一个索引从 0 到 00.6279999999999999 的 df。 我使用 idxmax() 查找一列中最大变量的索引 - df[Column A]。假设索引是 0.5579999999
我正在尝试查找多索引 Pandas 数据帧中多列中最大值的索引。 Kommune Upplands Vallentuna... Kiruna Year Party 19
考虑 pd.Series s import pandas as pd import numpy as np np.random.seed([3,1415]) s = pd.Series(np.rand
我有一个如下所示的数据框: column_1 column_2 2 3 6 4 5 5 . . . 我想为上述数据框的每一行返回该行中
我有一个如下所示的数据框: column_1 column_2 2 3 6 4 5 5 . . . 我想为上述数据框的每一行返回该行中
我有一个由 3 列和 n 行组成的数据框。 分组前我的数据框看起来像 Index Max_Mass (kg/m) Max_Diameter (m) 1 10
我正在尝试计算夏季金牌数和冬季金牌数相对于金牌总数的最大差异。问题是我只需要考虑在夏季和冬季都至少赢得 1 枚金牌的国家。 Gold: Count of summer gold medals Gold
我有一个这样的数据框: A B C 0 1 2 1 1 3 -8 10 2 10 3 -20 3 50 7 1 我想根据每列中最大绝对值的索引重新排列它的列。
这个问题在这里已经有了答案: Pandas: Find index of the row with second highest value (2 个答案) 关闭 4 年前。 我有一个以 Count
这个问题在这里已经有了答案: Select the max row per group - pandas performance issue (2 个答案) 关闭 4 年前。 import time
我有一个看起来像这样的系列: delivery 2007-04-26 706 23 2007-04-27 705 10
我有一个包含一些财务数据的 python DataFrame,我正在尝试为其创建一些技术指标。我想弄清楚如何使用移动窗口函数来加速这个过程,而不是逐个元素地进行。对于每个索引,我想返回最近 30 天的
我有一个必须按三个级别分组的 DataFrame,然后返回最高值。每天每个唯一值都有一个返回,我想找到最高返回和细节。 data.groupby(['Company','Product','Indus
我正在尝试使用 df.loc[df.groupby(keys)['column'].idxmax()] 按最大值从组中选择行。 但是,我发现 df.groupby(keys)['column'].id
您好,我正在尝试了解 pd.DataFrame.idxmax 的效率,看看是否值得用可能更高效的自定义算法(例如,使用二进制搜索)替换它。 我想了解此方法背后的算法或至少了解其复杂性,但到目前为止我还
我有一个数据框,其中有两列,id 和 date。 df = pd.DataFrame([[1, '2019-05-20'], [1, '2019-05-20'], [1, '2018-04-23'],
我有一个数据框,其中有两列,id 和 date。 df = pd.DataFrame([[1, '2019-05-20'], [1, '2019-05-20'], [1, '2018-04-23'],
这是我的代码 from pandas import DataFrame, Series import pandas as pd import numpy as np income = DataFram
我发现 idxmax() 在 argmax() 不起作用的情况下有效(例如在整个数据帧上),但是在某些情况下我需要 argmax()?如果不是,我会把它从我的脑海中抹去。 最佳答案 有区别。 pd.D
Pandas dataframe.idxmax()函数返回请求轴上第一次出现最大值的索引。 有没有办法返回前 N 次出现的索引? 有问题的行: df2 = df.loc[df.groupby(['co
我是一名优秀的程序员,十分优秀!