PandasDataframe中的焊盘选择范围?

如果我用类似的东西切片数据帧

>>> df = pd.DataFrame(data=[[x] for x in [1,2,3,5,1,3,2,1,1,4,5,6]], columns=['A'])

>>> df.loc[df['A'] == 1]
# or
>>> df[df['A'] == 1]

   A
0  1
4  1
7  1
8  1

我怎么能用 1 的缓冲区填充我的选择并获得每个索引0, 1, 3, 4, 5, 6, 7, 8, 9?我想选择列中'A'值为 1 的所有行,以及任何此类行之前或之后的行。


编辑我希望找出一种适用于任意焊盘尺寸的解决方案,而不仅仅是焊盘尺寸为 1。


编辑 2这是另一个例子,说明我要做什么

df = pd.DataFrame(data=[[x] for x in [1,2,3,5,3,2,1,1,4,5,6,0,0,3,1,2,4,5]], columns=['A'])

我们正在寻找pad == 2. 在这种情况下,我会尝试 fetch rows 0, 1, 2, 4, 5, 6, 7, 8, 9, 12, 13, 14, 15, 16

回答

您可以按位使用 shift 或 |

c = df['A'] == 1
df[c|c.shift()|c.shift(-1)]

   A
0  1
1  2
3  5
4  1
5  3
6  2
7  1
8  1
9  4

  • I saw this and I didn't even try 🙂

以上是PandasDataframe中的焊盘选择范围?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>