在pandas数据框中过滤重复数据

2024-06-02 06:05:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据框,有3列['id'、'city'、'time']:

   city  id       time
0   CA   1   2019-01-01 05:34:21
1   CA   1   2019-01-01 08:10:21
2   CA   1   2019-02-01 06:10:21
3   NY   1   2019-02-01 16:10:21
4   NY   1   2019-02-01 18:10:21
5   CA   1   2019-02-01 22:10:21
6   CA   1   2019-02-02 02:10:21

我遇到一个问题,即希望根据“城市”筛选出重复数据,同时保持最小的“时间”,如下所示:

   city   id       time
0   CA    1    2019-01-01 05:34:21
1   NY    1    2019-02-01 16:10:21
2   CA    1    2019-02-01 22:10:21

由于数据集相当大,最好不要在其中使用任何for循环。我该怎么做

多谢各位


Tags: 数据idcityfortime时间cany
1条回答
网友
1楼 · 发布于 2024-06-02 06:05:51

您可以使用:

df_new=df.groupby([df.city.ne(df.city.shift()).cumsum(),'city'],as_index=False).min()
print(df_new)

  city  id                 time
0   CA   1  2019-01-01 05:34:21
1   NY   1  2019-02-01 16:10:21
2   CA   1  2019-02-01 22:10:21

相关问题 更多 >