我正在尝试操纵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,在此示例中)包含单个索引的重复数据,实际数据中存在许多此类列。
我绝对可以通过循环数据框来实现,但我想弄清楚它是否可以完全用大熊猫完成。
答案 0 :(得分:2)
您可以使用:
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