python - 删除重复项,保留最新日期,Pandas 数据框

标签 python pandas

我有一个包含两列的 Pandas 数据框:一个日期时间列和一个代表站点 ID 的整数列。我需要一个具有以下修改的新数据框:

对于每组重复的 STATION_ID 值,保留包含 DATE_CHANGED 的最新条目的行。如果 STATION_ID 的重复条目都包含相同的 DATE_CHANGED,则删除重复项并为 STATION_ID 保留一行。如果 STATION_ID 值没有重复项,只需保留该行。

Dataframe(按STATION_ID排序):

              DATE_CHANGED  STATION_ID
0      2006-06-07 06:00:00           1
1      2000-09-26 06:00:00           1
2      2000-09-26 06:00:00           1
3      2000-09-26 06:00:00           1
4      2001-06-06 06:00:00           2
5      2005-07-29 06:00:00           2
6      2005-07-29 06:00:00           2
7      2001-06-06 06:00:00           2
8      2001-06-08 06:00:00           4
9      2003-11-25 07:00:00           4
10     2001-06-12 06:00:00           7
11     2001-06-04 06:00:00           8
12     2017-04-03 18:36:16           8
13     2017-04-03 18:36:16           8
14     2017-04-03 18:36:16           8
15     2001-06-04 06:00:00           8
16     2001-06-08 06:00:00          10
17     2001-06-08 06:00:00          10
18     2001-06-08 06:00:00          11
19     2001-06-08 06:00:00          11
20     2001-06-08 06:00:00          12
21     2001-06-08 06:00:00          12
22     2001-06-08 06:00:00          13
23     2001-06-08 06:00:00          13
24     2001-06-08 06:00:00          14
25     2001-06-08 06:00:00          14
26     2001-06-08 06:00:00          15
27     2017-08-07 17:48:25          15
28     2001-06-08 06:00:00          15
29     2017-08-07 17:48:25          15
...                    ...         ...
157066 2018-08-06 14:11:28       71655
157067 2018-08-06 14:11:28       71656
157068 2018-08-06 14:11:28       71656
157069 2018-09-11 21:45:05       71664
157070 2018-09-11 21:45:05       71664
157071 2018-09-11 21:45:05       71664
157072 2018-09-11 21:41:04       71664
157073 2018-08-09 15:22:07       71720
157074 2018-08-09 15:22:07       71720
157075 2018-08-09 15:22:07       71720
157076 2018-08-23 12:43:12       71899
157077 2018-08-23 12:43:12       71899
157078 2018-08-23 12:43:12       71899
157079 2018-09-08 20:21:43       71969
157080 2018-09-08 20:21:43       71969
157081 2018-09-08 20:21:43       71969
157082 2018-09-08 20:21:43       71984
157083 2018-09-08 20:21:43       71984
157084 2018-09-08 20:21:43       71984
157085 2018-09-05 18:46:18       71985
157086 2018-09-05 18:46:18       71985
157087 2018-09-05 18:46:18       71985
157088 2018-09-08 20:21:44       71990
157089 2018-09-08 20:21:44       71990
157090 2018-09-08 20:21:44       71990
157091 2018-09-08 20:21:43       72003
157092 2018-09-08 20:21:43       72003
157093 2018-09-08 20:21:43       72003
157094 2018-09-10 17:06:18       72024
157095 2018-09-10 17:15:05       72024

[157096 rows x 2 columns]

DATE_CHANGEDdtype: datetime64[ns]

STATION_IDdtype: int64

Pandas ==0.23.4

python ==2.7.15

最佳答案

尝试:

df.sort_values('DATE_CHANGED').drop_duplicates('STATION_ID',keep='last')

关于python - 删除重复项,保留最新日期,Pandas 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52395820/

相关文章:

python - 在 Python 中对 pandas 中的数据框进行分箱

python - Python/Pandas 中带有重复分隔符的字符串提取

python - 如何让我的程序在 .py 文件不在源位置的情况下移动文件

python - 如何查找 Pandas 中组总数的百分比

python - 类型错误 : the JSON object must be str, 不是 'Response' 与 Python 3.4

python - 在 Google Colaboratory 中保存数据

python - 如何从 csv 构建嵌套有序字典?

python - pandas groupby 新列的数字

python - `DataFrame` 行的内存高效过滤

python - 折叠共享一列值的 python 数据框行