我在python pandas中有一个数据框架,如下图。 (前两列,mygroup1 & mygroup2是groupby列)
df =
**mygroup1 mygroup2 tname @dt @num @vek**
a p alpha may 6 a
b q alpha june 8 b
c r beta may 9 c
d s beta june 11 d
我想对表(tname列中的值)进行数据透视,它应该是如下的,列名与tname值的连接来自其他列(@dt,@num和@vec)。
**mygroup1 mygroup2 alpha@dt alpha@num alpha@vec beta@dt beta@num beta@vec**
a p may 6 a nan nan nan
b q june 8 b nan nan nan
c r nan nan nan may 9 c
d s nan nan nan june 11 d
我试图做一个pivot使用pandas数据透视表,但不能够在下面的格式,我真的想。我将感谢任何帮助。
你可以这样做。
new_df = df.set_index(['mygroup1','mygroup2','tname']).unstack('tname')
new_df.columns = [f'{y}{x}' for x,y in new_df.columns]
new_df = new_df.sort_index(axis=1).reset_index()
输出:
mygroup1 mygroup2 alpha@dt alpha@num alpha@vek beta@dt beta@num beta@vek
0 a p may 6.0 a NaN NaN NaN
1 b q june 8.0 b NaN NaN NaN
2 c r NaN NaN NaN may 9.0 c
3 d s NaN NaN NaN june 11.0 d