我在这里遇到问题很难。我有一个包含两个应用程序每日下载次数的数据框。然而,我每天都有 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/