Панды конвертируют таймфреймы в индексы - PullRequest
0 голосов
/ 11 июля 2019

Можете ли вы предложить мне простой способ преобразования периодов времени в соответствующие индексы?

У меня есть функция, которая выбирает записи из фреймов данных на основе числовых индексов (от 10-й до 20-й строки), которые я не могу изменить. В то же время мой фрейм данных имеет временные индексы, и я выбрал его части на основе временных меток. Как преобразовать эти временные метки в соответствующие числовые индексы?

Большое спасибо Alex

Добавление нескольких примеров:

small_df.index[1]
Out[894]: Timestamp('2019-02-08 07:53:33.360000')

small_df.index[10]
Out[895]: Timestamp('2019-02-08 07:54:00.149000') # instead of time stamps.

Это период времени, который я хочу выбрать из второго фрейма данных, который также имеет временную индексацию. Но я хочу сделать это с помощью числовой индексации Значит 1. Найдите, какие числовые индексы соответствуют периоду времени выше

Исходя из комментария выше, это может быть довольно близко к тому, что мне нужно:

start=second_dataframe.index.get_loc(pd.Timestamp(small_df.index[1]))

end=second_dataframe.index.get_loc(pd.Timestamp(small_df.index[10]))

picked_rows= second_dataframe[start:end]

Есть ли лучший способ сделать это?

1 Ответ

1 голос
/ 11 июля 2019

Я считаю, что вам нужно Index.get_loc, если нужна позиция:

small_df.index.get_loc(pd.Timestamp('2019-02-08 07:53:33.360000'))
1

РЕДАКТИРОВАТЬ: Если значения всегда совпадают, возможно получить первую метку времени и извлечь вторые строки на DataFrame.loc:

start = small_df.index[1]

end = small_df.index[10]

picked_rows = second_dataframe.loc[start:end]

ORL

start=pd.Timestamp(small_df.index[1])

end=pd.Timestamp(small_df.index[10])

picked_rows = second_dataframe.loc[start:end]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...