首页 > 解决方案 > 在数据框中仅保留第一次出现的连续重复值

问题描述

我有一个像这样的数据框:

time      value

t1         50
t2         200
t3         200
t4         130
t5         78
t6         200
t7         19
t8         200
t9         200
t10        200
t11        59

结果,我想保留 value = 200 的行。如果它连续多次出现,则只保留第一次出现的 value 200。

所以所需的输出数据帧应该是:

time      value

t2         200
t6         200
t8         200

请帮我解决这个问题。

谢谢

标签: python-3.xpandasdataframe

解决方案


可以这样解决:

df.loc[(df['value'] == 200) & (df['value'].shift(1) != 200)].reset_index(drop=True)

从数据框中,我们取所有等于 200 且不超过 200 的值。如果要查看从 0 开始的索引值,还可以在末尾添加“reset_index”。

输出:

    time    value
  0   t2      200
  1   t6      200
  2   t8      200

推荐阅读