web-dev-qa-db-ja.com

データフレーム内のすべての列を、その列の平均でPython

pythonデータフレーム内の各列の平均を見つけ、その列の平均をその列から差し引く方法を探しています。

私が持っているとしましょう:

df = pd.DataFrame({'a': [1.5, 2.5], 'b': [0.25, 2.75], 'c': [1.25, 0.75]})

各列の平均を求めます。これにより、(2,1.5,1)が返され、列abおよびcからそれぞれ値が減算されます。

((-0.5,0.5),(-1.25, 1.5), (0.25,-0.25))

誰かがこれを行うのを手伝ってくれますか?

ありがとう

12
haimen

単にmean function of pandasを使用できます

コード:

import pandas as pd
df = pd.DataFrame({'a': [1.5, 2.5], 'b': [0.25, 2.75], 'c': [1.25, 0.75]})

print "The data frame"
print df
print "The mean value"
print df.mean()
print "The value after subraction of mean"
print df -df.mean()

出力:

The data frame

    a     b     c
0  1.5  0.25  1.25
1  2.5  2.75  0.75

The mean value

a    2.0
b    1.5
c    1.0
dtype: float64

The value after subraction of mean

    a     b     c
0 -0.5 -1.25  0.25
1  0.5  1.25 -0.25
11
The6thSense

これを試して:

>>> df
     a     b     c
0  1.5  0.25  1.25
1  2.5  2.75  0.75
>>> df.columns
Index([u'a', u'b', u'c'], dtype='object')
>>> for x in df.columns:
...     df[x] = df[x] - df[x].mean()
... 
>>> df
     a     b     c
0 -0.5 -1.25  0.25
1  0.5  1.25 -0.25

Pythonの方法:

>>> df - df.mean()
     a     b     c
0 -0.5 -1.25  0.25
1  0.5  1.25 -0.25
3
Hackaholic