我有一个数据框。
在第一行中,存在一个符合我的条件的唯一值。
例如t = 800。
现在我想找到包含该值的行,并选择它之前和之后的n行。
我尝试了:
idx = df[df['t']==stime]
from_idx = idx-1200
to_idx = idx + 1200
vib = df.iloc[to_idx:from_idx]
它找到了符合我的条件的行,但我无法从我的数据框中获得正确的选择。
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]
idx = df[df['t']==stime].index
,同时你想要将切片范围反转为vib = df.iloc[from_idx:to_idx]
。 - rahlf23