У меня есть dataframe. в любом месте в первой строке есть уникальное значение, которое соответствует моим критериям. например, t = 800
теперь я хочу найти строку, в которой находится это значение, и выбрать из n строк до 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]