如何删除在以后的行

问题描述:

在我的CSV数据我有一个下列数据的列有重复值的行:如何删除在以后的行

110.00 
111.00 
111.00 * 
112.00 
113.00 
114.00 
114.00 * 
115.00 
115.00 * 
116.00 
110.00 
111.00 
111.00 * 
112.00 
113.00 
114.00 
114.00 * 
115.00 
115.00 * 
116.00 

我在数据帧读它,我想删除就行与复制的数字,但只有当他们是一个接一个地immedietely。我标记了我想用*删除的行。 感谢您的任何建议

我认为你可以做到这一点使用.shift(),它可以向前移动了一系列或向后(默认为一个向前。)你要保持行,如果他们不作为下的人一样,所以像:

df[df["A"] != df["A"].shift()] 

例如:

>>> df = pd.DataFrame({"A": [1,2,1,2,2,3,3,3,1,2]}) 
>>> df["A"] 
0 1 
1 2 
2 1 
3 2 
4 2 
5 3 
6 3 
7 3 
8 1 
9 2 
Name: A, dtype: int64 
>>> df["A"].shift() 
0 NaN 
1  1 
2  2 
3  1 
4  2 
5  2 
6  3 
7  3 
8  3 
9  1 
Name: A, dtype: float64 
>>> df["A"] != df["A"].shift() 
0  True 
1  True 
2  True 
3  True 
4 False 
5  True 
6 False 
7 False 
8  True 
9  True 
Name: A, dtype: bool 

领导到:

>>> df[df["A"] != df["A"].shift()] 
    A 
0 1 
1 2 
2 1 
3 2 
5 3 
8 1 
9 2 
+0

谢谢,它完美的作品! – yemu 2013-04-09 08:31:43