有一个函数可以计算Y列的移动平均值:
df['Y1'] = df.apply(
lambda x: df.loc[
(
(df.X2 < x.X2)
& (df.X2 >= (x.X2 + pd.DateOffset(days=-4)))
& (df.X3 == x.X3)
& (df.X4 == x.X4)
),
"Y",
].mean(),
axis=1,
)
如何输入条件X5 = 1,在该条件下将执行此功能。 如果X5 = 1,则我们计算平均值,如果不是,则Y1为空。
我将澄清,讨论当前行中X5的值。
答案 0 :(得分:0)
您可以将其包装在if-else中:
lambda x: np.nan if X5 != 1 else df.loc[
(
(df.X2 < x.X2)
& (df.X2 >= (x.X2 + pd.DateOffset(days=-4)))
& (df.X3 == x.X3)
& (df.X4 == x.X4)
),
"Y",
].mean(),