Python Pandas-按值按索引合并行到新列

Python Pandas-按值按索引合并行到新列,python,pandas,Python,Pandas,我正在尝试操作pandas中的一些数据,使其与现有软件兼容,要执行的操作类似于: 原始数据帧: some_data language spelling 1 12 french un 1 12 english one 1 12 spanish uno 2 52 french deux 2 52 english two 2 5

我正在尝试操作pandas中的一些数据,使其与现有软件兼容,要执行的操作类似于:

原始数据帧:

    some_data   language    spelling
1   12          french      un
1   12          english     one
1   12          spanish     uno
2   52          french      deux
2   52          english     two
2   52          spanish     dos
    some_data   lang_en   lang_fr   lang_sp
1   12          one       un        uno
2   52          two       deux      dos
目标数据帧:

    some_data   language    spelling
1   12          french      un
1   12          english     one
1   12          spanish     uno
2   52          french      deux
2   52          english     two
2   52          spanish     dos
    some_data   lang_en   lang_fr   lang_sp
1   12          one       un        uno
2   52          two       deux      dos
因此,它将合并索引并对某些行重新排序,以在列中显示,同时保留任何补充列数据

所有不被“吐出”的列(本例中的一些_数据)都包含跨单个索引的重复数据,许多这样的列存在于实际数据中

我肯定可以通过在数据帧上循环来实现这一点,但我正在试图弄清楚是否可以完全用熊猫来实现这一点。

您可以使用:

df.set_index(['some_data','language'])['spelling']\
  .unstack()\
  .rename(columns=lambda x: 'lang_' + x[:2])\
  .rename_axis([None], axis=1)\
  .reset_index()
输出:

   some_data lang_en lang_fr lang_sp
0         12     one      un     uno
1         52     two    deux     dos