Python 执行该功能的条件
有一个计算Y列移动平均数的函数:Python 执行该功能的条件,python,python-3.x,pandas,lambda,Python,Python 3.x,Pandas,Lambda,有一个计算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) ),
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,
)
df['Y1']=df.apply(
lambda x:df.loc[
(
(df.X2=(x.X2+pd.DateOffset(天数=-4)))
&(df.X3==x.X3)
&(df.X4==x.X4)
),
“Y”,
].mean(),
轴=1,
)
如何输入执行此函数的条件X5=1。
如果X5=1,则我们计算平均值,如果不是,则Y1保持为空
我将澄清,在当前行中讨论X5的值。您可以将其包装为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(),
lambda x:np.nan如果X5!=1其他df.loc[
(
(df.X2=(x.X2+pd.DateOffset(天数=-4)))
&(df.X3==x.X3)
&(df.X4==x.X4)
),
“Y”,
].mean(),
您可以将其包装在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(),
lambda x:np.nan如果X5!=1其他df.loc[
(
(df.X2=(x.X2+pd.DateOffset(天数=-4)))
&(df.X3==x.X3)
&(df.X4==x.X4)
),
“Y”,
].mean(),
如果与熊猫相关,则添加适当的标记。Y1应为what?Y列的平均值。对于每行。如果与熊猫相关,则添加适当的标记。Y1应为what?Y列的平均值。对于每行。谢谢!另一项澄清。这将使Y1=NaN,但我如何做Y1=Y1?不是空的,但等于当前值。@asymon使用x['Y1']
而不是np.nan应该这样做谢谢!另一项澄清。这将使Y1=NaN,但我如何做Y1=Y1?不是空的,但等于当前值。@asymon使用x['Y1']
而不是np.nan应该这样做