对每列pandas数据框

时间:2017-07-24 05:45:34

标签: python pandas dataframe

为每列pandas数据帧实现均值标准化。

代码:

def transformation(x,mean,std):
   return (x-mean)/std

def read_input(path):

   data = pd.read_csv(path)
   for each_column in data.columns:
       mean = data[each_column].mean(); std = data[each_column].std()
       data[each_column].apply(transformation(self,mean,std))

   print (data)
   return data

错误是转换函数有三个参数。假设第一个参数作为数据帧各自列中的每个值,我使用了self函数。但它没有用。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我认为评论中提到了一个有效的解决方案。

进一步了解为什么您的代码不起作用。 Apply函数不会修改现有的df,但会返回计算的系列或数据帧。

简单类比:x = 1; X + 1; x值不会改变。 另一种解决方案可能是:

data[each_column] = data[each_column].apply(transformation(self,mean,std))