具有一个日期和三个不同值的数据框:我怎样才能得到中间的那个?
Posted
技术标签:
【中文标题】具有一个日期和三个不同值的数据框:我怎样才能得到中间的那个?【英文标题】:Dataframe with one date and three distinct values: how can I get the one in the middle? 【发布时间】:2021-10-23 09:22:33 【问题描述】:我在这里遇到了一个问题。我有一个数据框,其中包含两个应用程序的每日下载量。然而,我每天都有 3 个不同的下载量:付费下载量(最高值)、自然下载量(最小值)和其他(中间值)。
它们没有标签,所以我唯一知道的是我需要对这三个值进行排序并获得中间的那个。原始数据集如下所示:
id | date | downloads |
---|---|---|
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 | date | downloads |
---|---|---|
100 | 2018-01-05 | 44000 |
110 | 2018-01-05 | 7000 |
100 | 2018-01-06 | 75000 |
110 | 2018-01-06 | 6000 |
你们能帮我解决这个问题吗?
谢谢!
【问题讨论】:
【参考方案1】:使用groupby
以nth
取第二个元素:
df.groupby(['id', 'date'], as_index=False).nth(1)
【讨论】:
以上是关于具有一个日期和三个不同值的数据框:我怎样才能得到中间的那个?的主要内容,如果未能解决你的问题,请参考以下文章