python - 具有一个日期和三个不同值的数据框 : how can I get the one in the middle?

标签 python pandas dataframe dataset

我在这里遇到问题很难。我有一个包含两个应用程序每日下载次数的数据框。然而,我每天都有 3 个不同的下载数量:付费下载(最高值)、自然下载(最低值)和其他(中间值)。
它们没有标记,所以我唯一知道的是我需要对这三个值进行排序并在中间取一个。原始数据集如下所示:


ID
日期
下载


100
2018-01-05
2000年

100
2018-01-05
45000

100
2018-01-05
44000

110
2018-01-05
3000

110
2018-01-05
7000

110
2019-01-05
8000

100
2018-01-06
9000

100
2019-01-06
77000

100
2020-01-06
75000

110
2018-01-06
1000

110
2019-01-06
6000

110
2020-01-06
9000


我需要的最终结果如下所示:


ID
日期
下载


100
2018-01-05
44000

110
2018-01-05
7000

100
2018-01-06
75000

110
2018-01-06
6000


你们能帮我解决这个问题吗?
谢谢!

最佳答案

使用 groupby nth 取第二个元素:

df.groupby(['id', 'date'], as_index=False).nth(1)

关于python - 具有一个日期和三个不同值的数据框 : how can I get the one in the middle?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68885597/

相关文章:

python - 如何将 DataFrame 拆分为 FirstName 列和 LastName 列

Python 选择和计数元素

regex - 如何使用正则表达式和R正确编辑字符串?

r - 在 R 中选择满足特定条件的特定行和后续行

python - scrapy没有给出任何输出

python - 如何将 Pandas DataFrame 存储为 HDF5 PyTables 表(或 CArray、EArray 等)?

获取值时出现 Python 错误

python - 访问允许在 Python 3 中的程序之间拖放的 Windows 机制

python - 根据包含空值的其他列使用掩码设置值

python - 如何从列名称为 "crashloc"的簇中获取值,其中 "crashtype"= ="Serious Suspected Injury"