我有一个有5行5列的DataFrame。
由声明 -
创建df = pd.DataFrame(np.random.randn(25).reshape(5,5), index=list('abcde'), columns=list('vwxyz'))
我需要 -
定义一个函数调用'标准化',它在一个系列上起作用:
找出系列的平均值和标准差
用平均值减去系列的每个值
将结果除以标准差
将此函数应用于DF的每个数字列(int或float)。
要做到这一点,我做 -
1)
def Standardizing(y):
mean = y.mean()
sd = y.std()
return y.map(lambda x: round(((x-mean)/sd),2))
df.apply(Standardizing)
2)
def Standardizing2(y):
mean = y.mean()
sd = y.std()
return round((y-mean)/sd,2)
df.apply(Standardizing2)
虽然我明白,1应该有用。 y对我来说是一个系列,然后我使用地图来达到系列的每个元素 只是好奇,我写了2,这也有效 我不明白为什么会这样。我真的很感激任何投入。