Pandas: 0 рдпрд╛ NaN рдорд╛рдиреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдлреНрд░реЗрдо _apply_standard рддреНрд░реБрдЯрд┐

рдХреЛ рдирд┐рд░реНрдорд┐рдд 4 рдлрд╝рд░ре░ 2014  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: pandas-dev/pandas

рдпрд╣рд╛рдВ рдореИрдВрдиреЗ рдЬрд┐рди рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд┐рдпрд╛ рд╣реИред рдореИрдВ рдкрд╛рдВрдбрд╛ (0.12.0) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред

In [1]: import pandas as pd
In [4]: dataFrame = pd.read_csv('./test.csv')
In [7]: dataFrame
Out[7]:
    r1   r2  r3  r4  r5
0  NaN  3.5 NaN NaN   5
1  4.5  NaN   4 NaN NaN
2  1.5  NaN NaN NaN NaN
3  NaN  NaN NaN NaN NaN
4  NaN  NaN NaN NaN NaN
5  4.5  NaN   4 NaN NaN
6  NaN  NaN NaN NaN NaN

In [8]: dataFrame['mean'] = dataFrame.mean(axis=1)
In [9]: dataFrame
Out[9]:
    r1   r2  r3  r4  r5  mean
0  NaN  3.5 NaN NaN   5  4.25
1  4.5  NaN   4 NaN NaN  4.25
2  1.5  NaN NaN NaN NaN  1.50
3  NaN  NaN NaN NaN NaN   NaN
4  NaN  NaN NaN NaN NaN   NaN
5  4.5  NaN   4 NaN NaN  4.25
6  NaN  NaN NaN NaN NaN   NaN
In [10]: dataFrame.dtypes
Out[10]:
r1      float64
r2      float64
r3      float64
r4      float64
r5      float64
mean    float64
dtype: object

In [11]: meanCenteredDataFrame = dataFrame.apply(lambda x: x -x['mean'])
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-11-e6cc746e933b> in <module>()
----> 1 meanCenteredDataFrame = dataFrame.apply(lambda x: x -x['mean'])

//anaconda/lib/python2.7/site-packages/pandas/core/frame.pyc in apply(self, func, axis, broadcast, raw, args, **kwds)
   4414                     return self._apply_raw(f, axis)
   4415                 else:
-> 4416                     return self._apply_standard(f, axis)
   4417             else:
   4418                 return self._apply_broadcast(f, axis)

//anaconda/lib/python2.7/site-packages/pandas/core/frame.pyc in _apply_standard(self, func, axis, ignore_failures)
   4489                     # no k defined yet
   4490                     pass
-> 4491                 raise e
   4492
   4493

KeyError: ('mean', u'occurred at index r1')

In [12]: dataFrame.fillna(0,inplace=True)

In [13]: meanCenteredDataFrame = dataFrame.apply(lambda x: x -x['mean'])
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-13-e6cc746e933b> in <module>()
----> 1 meanCenteredDataFrame = dataFrame.apply(lambda x: x -x['mean'])

Type:       DataFrame
String Form:
r1   r2  r3  r4  r5  mean
           0  0.0  3.5   0   0   5  4.25
//anaconda/lib/python2.7/site-packages/pandas/core/frame.pyc in apply(self, func, axis, broadcast, raw, args, **kwds)
   4414                     return self._apply_raw(f, axis)
   4415                 else:
-> 4416                     return self._apply_standard(f, axis)
   4417             else:
   4418                 return self._apply_broadcast(f, axis)

//anaconda/lib/python2.7/site-packages/pandas/core/frame.pyc in _apply_standard(self, func, axis, ignore_failures)
   4489                     # no k defined yet
   4490                     pass
-> 4491                 raise e
   4492
   4493

KeyError: ('mean', u'occurred at index r1')

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк axis=1 рдХреАрд╡рд░реНрдб рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ apply :

In [21]: df
Out[21]: 
    r1   r2  r3  r4  r5  mean
0  NaN  3.5 NaN NaN   5  4.25
1  4.5  NaN   4 NaN NaN  4.25
2  1.5  NaN NaN NaN NaN  1.50
3  NaN  NaN NaN NaN NaN   NaN
4  NaN  NaN NaN NaN NaN   NaN
5  4.5  NaN   4 NaN NaN  4.25
6  NaN  NaN NaN NaN NaN   NaN

[7 rows x 6 columns]

In [22]: df.apply(lambda x: x - x['mean'], axis=1)
Out[22]: 
     r1    r2    r3  r4    r5  mean
0   NaN -0.75   NaN NaN  0.75     0
1  0.25   NaN -0.25 NaN   NaN     0
2  0.00   NaN   NaN NaN   NaN     0
3   NaN   NaN   NaN NaN   NaN   NaN
4   NaN   NaN   NaN NaN   NaN   NaN
5  0.25   NaN -0.25 NaN   NaN     0
6   NaN   NaN   NaN NaN   NaN   NaN

[7 rows x 6 columns]

df.apply рдХреЙрд▓рдо рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИ ( axis=0 ), рдЗрд╕рд▓рд┐рдП рдЬрдм рдХреЙрд▓рдо r1 рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рддреЛ рдпрд╣ mean ред

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк axis=1 рдХреАрд╡рд░реНрдб рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ apply :

In [21]: df
Out[21]: 
    r1   r2  r3  r4  r5  mean
0  NaN  3.5 NaN NaN   5  4.25
1  4.5  NaN   4 NaN NaN  4.25
2  1.5  NaN NaN NaN NaN  1.50
3  NaN  NaN NaN NaN NaN   NaN
4  NaN  NaN NaN NaN NaN   NaN
5  4.5  NaN   4 NaN NaN  4.25
6  NaN  NaN NaN NaN NaN   NaN

[7 rows x 6 columns]

In [22]: df.apply(lambda x: x - x['mean'], axis=1)
Out[22]: 
     r1    r2    r3  r4    r5  mean
0   NaN -0.75   NaN NaN  0.75     0
1  0.25   NaN -0.25 NaN   NaN     0
2  0.00   NaN   NaN NaN   NaN     0
3   NaN   NaN   NaN NaN   NaN   NaN
4   NaN   NaN   NaN NaN   NaN   NaN
5  0.25   NaN -0.25 NaN   NaN     0
6   NaN   NaN   NaN NaN   NaN   NaN

[7 rows x 6 columns]

df.apply рдХреЙрд▓рдо рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИ ( axis=0 ), рдЗрд╕рд▓рд┐рдП рдЬрдм рдХреЙрд▓рдо r1 рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рддреЛ рдпрд╣ mean ред

рдХрд░рдирд╛ рдФрд░ рднреА рдЕрдЪреНрдЫрд╛ рд╣реИ

df.sub(df['mean'],axis='index')

рджреЗрдЦреЗрдВ http://pandas.pydata.org/pandas-docs/dev/basics.html#matching -broadcasting-behavior

@jreback
рд╡рд╣ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рд╢реБрдХреНрд░рд┐рдпрд╛

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

swails picture swails  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

andreas-thomik picture andreas-thomik  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

MatzeB picture MatzeB  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

matthiasroder picture matthiasroder  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

amelio-vazquez-reina picture amelio-vazquez-reina  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ