假设我有一个熊猫数据框df:
df
我想计算数据框的列均值。
这很简单:
df.apply(average)
然后按列范围max(col)-min(col)。这又很容易:
df.apply(max) - df.apply(min)
现在,对于每个元素,我要减去其列的均值并除以其列的范围。我不确定该怎么做
任何帮助/指针将不胜感激。
In [92]: df Out[92]: a b c d A -0.488816 0.863769 4.325608 -4.721202 B -11.937097 2.993993 -12.916784 -1.086236 C -5.569493 4.672679 -2.168464 -9.315900 D 8.892368 0.932785 4.535396 0.598124 In [93]: df_norm = (df - df.mean()) / (df.max() - df.min()) In [94]: df_norm Out[94]: a b c d A 0.085789 -0.394348 0.337016 -0.109935 B -0.463830 0.164926 -0.650963 0.256714 C -0.158129 0.605652 -0.035090 -0.573389 D 0.536170 -0.376229 0.349037 0.426611 In [95]: df_norm.mean() Out[95]: a -2.081668e-17 b 4.857226e-17 c 1.734723e-17 d -1.040834e-17 In [96]: df_norm.max() - df_norm.min() Out[96]: a 1 b 1 c 1 d 1