Панды выбирают определенные строки до и после определенной строки, которая соответствует моим критериям

1

У меня есть 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]

он находит строку, которая соответствует моим критериям, но я не могу получить правильный выбор из своего информационного кадра

  • 0
    Вы хотите idx = df[df['t']==stime].index и хотите изменить диапазон vib = df.iloc[from_idx:to_idx]
  • 0
    Спасибо, и последнее замечание верно, конечно.
Теги:
pandas
indexing

1 ответ

1
Лучший ответ

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]
  • 0
    Спасибо, это то, что я искал.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню