为每列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函数。但它没有用。有什么建议吗?
答案 0 :(得分:0)
我认为评论中提到了一个有效的解决方案。
进一步了解为什么您的代码不起作用。 Apply函数不会修改现有的df,但会返回计算的系列或数据帧。
简单类比:x = 1; X + 1; x值不会改变。 另一种解决方案可能是:
data[each_column] = data[each_column].apply(transformation(self,mean,std))