0

在我的 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

我在数据框中阅读它,我想删除具有重复数字的行,但前提是它们是一个接一个地立即出现。我用 * 标记了我想删除的行。感谢您的任何建议

4

1 回答 1

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
于 2013-04-08T14:47:57.227 回答