CHRD:
私が持っていると仮定しdf1
、piv1
、、およびpiv2
以下:
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
代わりにpiv1
とpiv2
、私がしようとしていますpiv3
以下のようになります。何か案は?理想的には私が作成したいpiv3
から直接df1
(すなわち作成する必要がないpiv1
とpiv2
し、それらを組み合わせました)。
piv3
S g1a g1b g2a g2b
s1 1.0 NaN 1.0 NaN
s2 NaN 2.0 NaN 2.0
anky_91:
df.melt
そして、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