Добавление столбца в фрейм данных на основе операции timedelta - PullRequest
0 голосов
/ 31 марта 2019

Я пытаюсь добавить новое значение столбца для каждой строки, которое должно быть средним для другого столбца, содержащего скорости, и который задается предыдущими строками (если они отсортированы) из столбца datetime, который должен удовлетворять условию операции timedelta.

В частности, каждая строка содержит дату и время. Мне нужно добавить новый столбец, который указывает среднее значение предыдущих скоростей в максимальном диапазоне 30 дней.

Я пытался использовать нарезку по местам и задавать некоторые условия для операций с временной шкалой, но это не сработало.

def add_key_columns(data):
    temp_df = data

    #Definimos un timedelta para la comparacion
    diff = pd.Timedelta("30 days")

    temp_df["week_day"] = temp_df["Date"].dt.day
    temp_df["year_day"] = temp_df["Date"].dt.dayofyear
    temp_df["year_week"] = temp_df["Date"].dt.weekofyear
    temp_df["mean_v(n-t)"] = temp_df.loc[temp_df["Date"] - temp_df["Date"] <= diff].mean()

    return temp_df

Это ошибка, которую я получаю:

ValueError: Неверное количество пропущенных предметов 11, размещение подразумевает 1

...