我希望删除那些前一行和后一行在 num2
列具有相同值的行。
我的数据框如下:
import pandas as pd
df = pd.DataFrame([
[12, 10],
[11, 10],
[13, 10],
[42, 11],
[4, 11],
[5, 2]
], columns=["num1", "num2"]
)
以下是我的目标:
df = pd.DataFrame([
[12, 10],
[13, 10],
[42, 11],
[4, 11],
[5, 2]
], columns=["num1", "num2"]
)
我尝试过的方法:
df["num1_diff"] = df["num2"].diff().fillna(0).astype(int)
filt = df["num1_diff"].apply(lambda x: x == 0)
print(df[filt])
提供:
num1 num2 num1_diff
0 12 10 0
1 11 10 0
2 13 10 0
4 4 11 0
我在想要使用新的num1_diff
列来进行过滤。
这种方法好吗?或者还有更好的方法吗?