基于timedelta操作将列添加到数据框

时间:2019-03-31 18:29:46

标签: python pandas datetime timedelta

我正在尝试为每行添加一个新的列值,该值必须是包含速度的另一列的均值,并且该值由必须满足timedelta操作条件的datetime列中的前几行(如果已排序)给出。 / p>

具体来说,每一行都包含一个日期时间和一个速度。我需要添加一个新列,以指示过去30天最大范围内的速度平均值。

我尝试使用loc切片并为timedelta操作提供一些条件,但是它没有用。

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

0 个答案:

没有答案