假设我在下面有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
。有什么想法吗?理想情况下,我希望直接从df1
创建piv3
(也就是说,不需要创建piv1
和piv2
,然后组合它们)
piv3
S g1a g1b g2a g2b
s1 1.0 NaN 1.0 NaN
s2 NaN 2.0 NaN 2.0
也许不是最优雅的答案:
df.melt
和pivot_table
:IIUC
相关问题 更多 >
编程相关推荐