假设我有这个数据帧:
df = pd.DataFrame({'index':['10a','10a','10a','20b','20b','20b','30c','30c','30c']
,'var_vals': ['aaa','aaa','abb','bbb','bba','bbb','ccc','ccc','cab']
,'var2_vals':['aga','aga','add','bgb','bbd','bgb','cdd','cdd','cda']})
display(df)
看起来像这样:
index var_vals var2_vals
0 10a aaa aga
1 10a aaa aga
2 10a abb add
3 20b bbb bgb
4 20b bba bbd
5 20b bbb bgb
6 30c ccc cdd
7 30c ccc cdd
8 30c cab cda
如何将输出转换为一行,在新列中只包含不同的内容:
index var_vals var_vals_0 var2_vals var2_vals_0
0 10a aaa abb aga add
1 20b bbb bba bgb bbd
2 30c ccc cab cdd cda
我尝试过groupby、pivot/pivot\ u table、stack/unstack和melt,但我要么以巨大的维度结束,要么数据丢失。你知道吗
通过
groupby.apply
的一种方法:还有一个:
更新代码:
完整示例
作为pd导入
退货:
与
pivot
一起使用drop_duplicates
相关问题 更多 >
编程相关推荐