Python 基于组和动态列名在数据集中旋转列
我在python中有一个数据帧,如下所示: (前两列mygroup1和mygroup2是groupby列) 我想透视表(tname列中的值),它应该是以下列的名称,这些列的名称与从其他列(@dt、@num和@vec)获取的tname值连接在一起 我正在尝试使用pandas pivot表进行pivot,但无法获得我真正想要的以下格式。我将感谢任何帮助 您可以执行以下操作:Python 基于组和动态列名在数据集中旋转列,python,pandas,pivot-table,pandas-groupby,Python,Pandas,Pivot Table,Pandas Groupby,我在python中有一个数据帧,如下所示: (前两列mygroup1和mygroup2是groupby列) 我想透视表(tname列中的值),它应该是以下列的名称,这些列的名称与从其他列(@dt、@num和@vec)获取的tname值连接在一起 我正在尝试使用pandas pivot表进行pivot,但无法获得我真正想要的以下格式。我将感谢任何帮助 您可以执行以下操作: new_df = df.set_index(['mygroup1','mygroup2','tname']).unstack(
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
谢谢你,广!我得到了大部分的部分,除了你在列创建中放入的函数“f”。它叫什么,到底在做什么。我从来没见过!感谢againIt的f-string,它与Python3中的format函数类似+
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