如何在列中获得真值和两侧的假值

2024-04-23 07:13:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道如何最简单的方法来选择列中所有的真行,以及真行集合中紧邻的假行

TLDR; Extract all rows that are True, along with the False rows 1 above, and 1 below every True rows.

这就是我的意思:

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

然后,在运行代码之后,结果将是:

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

Tags: andthe方法falsetruethatwithextract
1条回答
网友
1楼 · 发布于 2024-04-23 07:13:14

我认为这是必要的:

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)

输出:

    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

相关问题 更多 >