因此,我试图通过在数据帧的所有列上迭代使用.apply()来规范我的功能,但它给出了KeyError。有人可以帮忙吗?
我尝试使用下面的代码,但是它不起作用:
for x in df.columns:
df[x+'_norm'] = df[x].apply(lambda x:(x-df[x].mean())/df[x].std())
答案 0 :(得分:0)
我认为在应用内部使用mean
和std
函数不是一个好主意。每当任何行将要获得其新值时,您都在计算它们。相反,您可以在循环开始时计算它们,并在apply函数中使用它。如下所示:
for x in df.columns:
mean = df[x].mean()
std = df[x].std()
df[x+'_norm'] = df[x].apply(lambda y:(y-mean)/std)