如何删除熊猫数据框中的重复值

时间:2019-07-01 11:25:40

标签: python pandas

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

Time       x     y
00:10:00   5.4   4.2
00:20:00   6.2   5.2
00:30:00   4.1   5.2
00:40:00   5.8   5.2
00:50:00   5.1   3.8

我需要找到一种方法来删除y中的连续重复值(5.2)。我不能使用pd.drop_duplicates(),因为那样会从数据中删除真正的5.2值。我不想遍历每一行,因为它是一个非常大的数据框,并且感觉像熊猫实践欠佳。我希望能找到一种不错的方法,但到目前为止我还没有找到。

非常感谢

1 个答案:

答案 0 :(得分:5)

如果我对您的理解正确,那么您想丢弃连续重复项,我们可以在此处将boolean indexing.shift.ne一起使用。

注释:我将数据框扩展了1行以显示该方法有效:

# Extended example dataframe
       Time    x    y
0  00:10:00  5.4  4.2
1  00:20:00  6.2  5.2
2  00:30:00  4.1  5.2
3  00:40:00  5.8  5.2
4  00:50:00  5.1  3.8
5  00:60:00  3.3  5.2

m = df['y'].shift().ne(df['y'])
df[m]

       Time    x    y
0  00:10:00  5.4  4.2
1  00:20:00  6.2  5.2
4  00:50:00  5.1  3.8
5  00:60:00  3.3  5.2

ne等效于!=,代表不等于

df['x'] != 5.4 
df['x'].ne(5.4)

0    False
1     True
2     True
3     True
4     True
5     True
Name: x, dtype: bool
0    False
1     True
2     True
3     True
4     True
5     True
Name: x, dtype: bool