gpt4 book ai didi

python - 有条件地删除 Pandas Dataframe 行

转载 作者:行者123 更新时间:2023-12-03 15:48:12 25 4
gpt4 key购买 nike

我希望删除之前和之后的行对于列 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列进行过滤。
这是一种好方法,还是可能有更好的方法?

最佳答案

使用 Series.shift两次,检查哪里num2等于:

df[df['num2'].shift().ne(df['num2'].shift(-1))]

num1 num2
0 12 10
2 13 10
3 42 11
4 4 11
5 5 2

关于python - 有条件地删除 Pandas Dataframe 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62933997/

25 4 0
文章推荐: swift - macOS Big Sur 新的工具栏按钮样式
文章推荐: r - 将函数调用转换为 R 中的字符
文章推荐: r - 如何在R中输出树状人类可读的对象结构
文章推荐: c# - 如何将对象绑定(bind)到 Blazor 中的