Pandas combine multiple pivot tables

CHRD :

Suppose I have df1, piv1, and, piv2 below:

df1 = pd.DataFrame({'R': [1, 2], 'S': ['s1', 's2'], 'G1': ['g1a', 'g1b'], 'G2': ['g2a', 'g2b']})

df1
    R   S   G1  G2
0   1   s1  g1a g2a
1   2   s2  g1b g2b

piv1 = df1.pivot_table(index=(['S']), columns=(['G1']), aggfunc=({'R': 'mean'}))

piv1
        R
G1  g1a g1b
S       
s1  1.0 NaN
s2  NaN 2.0

piv2 = df1.pivot_table(index=(['S']), columns=(['G2']), aggfunc=({'R': 'mean'}))

piv2
        R
G2  g2a g2b
S       
s1  1.0 NaN
s2  NaN 2.0

Instead of piv1 and piv2, I am trying to make piv3 which would look like below. Any ideas? Ideally I'd like to create piv3 directly from df1 (i.e. not needing to create piv1 and piv2 and then combine them).

piv3
S   g1a  g1b  g2a  g2b
s1  1.0  NaN  1.0  NaN
s2  NaN  2.0  NaN  2.0
anky_91 :

df.melt and pivot_table:

df1.melt(['S','R']).pivot_table(index='S',columns='value',values='R').rename_axis(None)

value  g1a  g1b  g2a  g2b
s1     1.0  NaN  1.0  NaN
s2     NaN  2.0  NaN  2.0

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=3977&siteId=1