重塑 pandas 中的数据框以水平布局数据

reshape dataframe in pandas to layout data horizontally

我有以下数据框:

data = [['label1', 1234], ['label1', 12345], ['label2', 2345], ['label2', 4567], ['label3', 123], ['label2', 4589]]
pd.DataFrame(data, columns=['label', 'id'])

输出:

    label   id
0   label1  1234
1   label1  12345
2   label2  2345
3   label2  4567
4   label3  123
5   label2  4589

我想将数据重塑为以下内容:

    label   id1    id2    id3
0   label1  1234   12345  None
1   label2  2345   4567   4589
2   label3  123    None   None

基本上水平排列id,并为id添加唯一标签,每行在标签上键入。

我正在查看 pandas 中的旋转操作,但我似乎无法弄清楚我需要以输出所需的格式获取数据的确切咒语。

如有任何帮助,我们将不胜感激!

分配一个新列来枚举 ID,然后使用数据透视表:

(df.assign(ids='id' + (df.groupby('label').cumcount()+1).astype(str))
   .pivot(index='label', columns='ids', values='id'))
Out:
ids        id1      id2     id3
label                          
label1  1234.0  12345.0     NaN
label2  2345.0   4567.0  4589.0
label3   123.0      NaN     NaN