在我的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
我在数据框中读取它并且我想删除具有重复数字的行,但仅限于它们是一个接一个的立即。我用*标记了我要删除的行。 感谢您的任何建议
答案 0 :(得分:2)
我认为你可以使用.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