python pandas 将唯一行转换为具有各自数据的新列

python pandas convert unique rows as new columns with their respective data

我有以下形式的一些数据:

Col1    Col2        Col3    Col4
a       2021-12-11  759     46
a       2021-13-11  803     30
b       2021-12-11  46      10
b       2021-13-11  86      7

我想将其转换为以下形式:

Col2        a-Col3    a-Col4  b-col3 b-col4
2021-12-11  759       46      46     10
2021-13-11  803       30      86     7

我已经尝试过 pivot table 和类似的“分组”功能,但我找不到任何解决方案。

您可以使用:

df2 = df.set_index(['Col2', 'Col1']).unstack().swaplevel(axis=1)
df2.columns = df2.columns.map('-'.join)

输出:

>>> df2.reset_index()
         Col2  a-Col3  b-Col3  a-Col4  b-Col4
0  2021-12-11     759      46      46      10
1  2021-13-11     803      86      30       7