我试图在python中定义一个函数,其中特定列中数据帧中的负值被限制为零。因此,我定义了一个函数,该函数将x作为输入,如果x为负,则将其限制为零(cap0),然后将该函数应用于特定列。然而,当我用python编写函数时,它一直在运行(就像我的函数没有闭包一样)。如果你能帮助我,我将不胜感激
另外,我对python还很陌生
def captozero(df, cap_vars):
def cap0(x):
x_out = x.copy()
x_out = np.where(x_out < 0, 0, x)
return x_out
df_out = df.copy()
df_out = df_out.apply(lambda x: cap0(x) if x.name in [cap_vars] else x)
return df_out
有一个函数
DataFrame.clip
可用于此目的:产生以下输出:
请注意,使用update函数可以用新剪裁的版本覆盖数据框中的列
有一个numpy函数可以比较结果并取最大值。 就你而言
也可以对每列使用np.where
相关问题 更多 >
编程相关推荐