Gus*_*sen 5 python dataframe python-3.x pandas
我希望删除之前和之后的行对 column 具有相同值的行num2。我的数据框如下所示:
import pandas as pd
df = pd.DataFrame([
[12, 10],
[11, 10],
[13, 10],
[42, 11],
[4, 11],
[5, 2]
], columns=["num1", "num2"]
)
Run Code Online (Sandbox Code Playgroud)
这是我的目标:
df = pd.DataFrame([
[12, 10],
[13, 10],
[42, 11],
[4, 11],
[5, 2]
], columns=["num1", "num2"]
)
Run Code Online (Sandbox Code Playgroud)
我尝试过的:
df["num1_diff"] = df["num2"].diff().fillna(0).astype(int)
filt = df["num1_diff"].apply(lambda x: x == 0)
print(df[filt])
Run Code Online (Sandbox Code Playgroud)
给予:
num1 num2 num1_diff
0 12 10 0
1 11 10 0
2 13 10 0
4 4 11 0
Run Code Online (Sandbox Code Playgroud)
我正在考虑使用新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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
84 次 |
| 最近记录: |