如何删除在以后的行
问题描述:
在我的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
谢谢,它完美的作品! – yemu 2013-04-09 08:31:43