python - Move pivot_table values to rows -


is possible have columns passed values argument positioned rows? example of problem have:

import datetime  df = pd.dataframe({'a': ['one', 'one', 'two', 'three'] * 6,                    'b': ['a', 'b', 'c'] * 8,                    'c': ['foo', 'foo', 'foo', 'bar', 'bar', 'bar'] * 4,                                                'd': np.random.randn(24),                                                'e': np.random.randn(24),                                                'f': [datetime.datetime(2013, i, 1) in range(1, 3)] * 12                    }) 

this produces following dataframe:

         b    c         d         e          f 0     1   foo -0.152738  2.407996 2013-01-01 1     1  b  foo -1.113901  0.597699 2013-02-01 2     2  c  foo -0.587265 -0.878725 2013-03-01 3   3   bar -0.734618 -0.252295 2013-04-01 4     1  b  bar  0.359421  1.181750 2013-05-01 5     1  c  bar -0.303491  0.473419 2013-06-01 6     2   foo -0.275638  0.360602 2013-07-01 

applying pivot_table,

>>> df.pivot_table(index=['a','b','c'], columns='f', values=['d','e'])                       d                     e            f           2013-01-01 2013-02-01 2013-01-01 2013-02-01     b c                                               1   bar        nan   0.878219        nan  -0.004981         foo  -0.164395        nan  -0.254941        nan       b bar   1.239046        nan   1.265536        nan         foo        nan   0.181584        nan   0.449861       c bar        nan  -0.823104        nan  -0.317757         foo  -1.784723        nan   0.169650        nan 3 bar        nan   1.228297        nan   0.467856       b foo        nan   0.065234        nan   0.061998       c bar        nan   0.738302        nan   0.908946 2   foo  -0.227953        nan  -1.067442        nan       b bar   0.336351        nan  -0.522268        nan       c foo  -0.279180        nan   0.335666        nan 

i'd columns d, e & f appear under rows multiindex, keeping columns solely dates.

stack first level:

>>> df.pivot_table(index=['a','b','c'], columns='f', values=['d','e']).stack(0)  f              2013-01-01  2013-02-01     b c                             1   bar d         nan   -0.326106             e         nan   -0.882319         foo d    0.147015         nan             e   -0.121944         nan       b bar d    0.133723         nan             e    0.182735         nan         foo d         nan    0.158913             e         nan    0.365275       c bar d         nan    0.495230             e         nan    1.098515         foo d   -0.624333         nan             e    0.214979         nan 3 bar d         nan    0.101431             e         nan   -0.352368       b foo d         nan    0.405091             e         nan    0.389888       c bar d         nan    0.804457             e         nan   -0.572397 2   foo d    0.127069         nan             e    0.105038         nan       b bar d   -1.052195         nan             e    0.728630         nan       c foo d   -0.643464         nan             e   -0.440381         nan 

Comments

Popular posts from this blog

c++ - Difference between pre and post decrement in recursive function argument -

php - Nothing but 'run(); ' when browsing to my local project, how do I fix this? -

php - How can I echo out this array? -