使用pandas在满足我的条件的特定行前后选择一些行

7

我有一个数据框。

在第一行中,存在一个符合我的条件的唯一值。

例如t = 800。

现在我想找到包含该值的行,并选择它之前和之后的n行。

我尝试了:

idx = df[df['t']==stime]
from_idx = idx-1200
to_idx = idx + 1200
vib = df.iloc[to_idx:from_idx]

它找到了符合我的条件的行,但我无法从我的数据框中获得正确的选择。


你想要 idx = df[df['t']==stime].index,同时你想要将切片范围反转为 vib = df.iloc[from_idx:to_idx] - rahlf23
谢谢,最后的话当然是正确的。 - Antony
1个回答

8

idx 在你的逻辑中是一个 pd.DataFrame 对象,不是表示行索引的标量。如果你提取标量索引,假设你的索引是唯一的,你可以使用 pd.Index.get_loc 来获取整数位置:

idx = df.index.get_loc(df[df['t'] == stime].index[0])
vib = df.iloc[idx - 1200: idx + 1200]

1
谢谢,这正是我在寻找的。 - Antony

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接