Python: создание фиктивной переменной Timerseries на основе списка DateTime - PullRequest
0 голосов
/ 13 октября 2018

У меня есть два dataframes. my_index содержит данные для дальнейшего анализа на основе минутных данных my_index['TIME'] в формате yyyy-mm-dd hh:mm:ss (общая длина 100 000 строк).Другой фрейм данных release_plain содержит конкретные даты (тот же формат времени) в пределах временного интервала другого (длина 70).Оба DateTimes имеют строковый формат

Теперь я хочу сопоставить даты release_plain с датами с my_index, и при совпадении напишите 1 в новом столбце my_index['Dummy'] для диапазона за 5 минут дои после матча (итого одиннадцать 1нс).

То, что у меня есть на данный момент:

release_plain = pd.read_csv(infile)
my_index = pd.read_csv(index_file)

datetime = release_plain['Date'].astype(str) + ' ' + release_plain['Time'].astype(str)
list_datetime = list(datetime)


for date_of_interest in list_datetime:
    if my_index.loc[my_index['TIME']==date_of_interest]:
        my_index['Dummy'] == 1
    else:
        my_index['Dummy'] == 0

Но это возвращает:

ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

И более того, из того, что у меня есть, будет создан только 1 Dummy для конкретногоDateTime, но не фиктивный диапазон за 5 минут до и после события.

1 Ответ

0 голосов
/ 13 октября 2018

if my_index.loc[my_index['TIME']==date_of_interest]

Ваши скобки здесь, кажется, не имеют смысла, вы передаете оценку как key, в значительной степени читающую if my_index.loc[True]: или if my_index.loc[False], не уверенную, если у вас есть keys, которые True и False, но я ожидаю, что вы этого не сделаете, возможно, вы имели в виду это:

if my_index.loc[my_index['TIME']] == date_of_interest

...