迭代吞吐量数据框列并使用.apply()会给出KeyError

时间:2019-07-18 12:19:03

标签: python-3.x

因此,我试图通过在数据帧的所有列上迭代使用.apply()来规范我的功能,但它给出了KeyError。有人可以帮忙吗?

我尝试使用下面的代码,但是它不起作用:

for x in df.columns:
      df[x+'_norm'] = df[x].apply(lambda x:(x-df[x].mean())/df[x].std())

1 个答案:

答案 0 :(得分:0)

我认为在应用内部使用meanstd函数不是一个好主意。每当任何行将要获得其新值时,您都在计算它们。相反,您可以在循环开始时计算它们,并在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)