Jon*_*eco 2 python boolean slice pandas
我想知道如何最简单的方法来选择一列中的所有True行以及该组Trues中紧邻的Falses行.
TLDR; 提取所有True行,以及上面的False行1,以及每个True行下面的1行.
这就是我的意思:
df:
0 False
1 False
2 True
3 True
4 False
5 False
6 False
7 False
8 True
9 True
10 True
11 False
12 False
13 False
14 False
15 True
16 True
dtype: bool
Run Code Online (Sandbox Code Playgroud)
然后,在运行代码之后,结果将是:
result:
1 False
2 True
3 True
4 False
7 False
8 True
9 True
10 True
11 False
14 False
15 True
16 True
Run Code Online (Sandbox Code Playgroud)
我认为这可以满足需要:
import pandas as pd
df = pd.DataFrame({'value': [
False,
False,
True,
True,
False,
False,
False,
False,
True,
True,
True,
False,
False,
False,
False,
True,
True,
]})
result = df[df.value | df.value.shift(-1) | df.value.shift(1)]
print(result)
Run Code Online (Sandbox Code Playgroud)
输出:
value
1 False
2 True
3 True
4 False
7 False
8 True
9 True
10 True
11 False
14 False
15 True
16 True
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
39 次 |
| 最近记录: |