python - Pandas 的均值归一化

标签 python python-3.x pandas dataframe

<分区>

我正在尝试在 pandas 中实现行的平均归一化。找到 pandas 中每一行的平均值,从特定行的每个元素中减去平均值。

代码:

df = pd.DataFrame(np.random.randint(0,100,size=(4, 5)), columns=list('ABCDE'))
print (df)


    A   B   C   D   E
0  53  77  34  51  41
1  44  46   6  70  31
2  52  22  95  88  13
3  77  18  88  86  20


x = pd.DataFrame(df.mean(axis = 1),columns=['mean'])

for index,rows in df.iterrows():
  for i in range(len(x)):
     df.loc[index] = df.loc[index] - x.loc[i]
print (df)


op:

     A   B   C   D   E
  0 NaN NaN NaN NaN NaN
  1 NaN NaN NaN NaN NaN
  2 NaN NaN NaN NaN NaN
  3 NaN NaN NaN NaN NaN

有什么错误的建议

最佳答案

你可以这样使用apply:

df = df.apply(lambda x: x - df.mean(axis = 1))

输出:

      A     B     C     D     E
0   1.8  25.8 -17.2  -0.2 -10.2
1   4.6   6.6 -33.4  30.6  -8.4
2  -2.0 -32.0  41.0  34.0 -41.0
3  19.2 -39.8  30.2  28.2 -37.8

关于python - Pandas 的均值归一化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50632074/

相关文章:

javascript - 在 JavaScript 中找不到文件

mysql - 生产环境频繁Mysql gone away (Error 2006)

python - 使用 pandas 行的内容创建另一个 pandas 行(帮助我优化这个非常丑陋的函数)

python - 引用稍后在代码中创建的对象

python - 在 Python 中形成 Json 模型的问题

python - 属性错误 : 'Series' object has no attribute 'as_matrix' Why is it error?

python - 如何比较系列中的两个值,而不是系列对象? Python 3.x

python - 如何消除 PyInstaller 单文件夹构建中的困惑?

python - 如何根据 pandas 中的另一个数据帧更改数据帧中的值?

python - 如何用 Pandas 数据框中的 ASCII 替换非 ASCII