如何在Python或R中实现以下目标?
按姓和名分组,然后将地址和城市移动到分组行上的新列中
姓氏姓氏地址城市1名称1给定名称1地址11城市112 Name1 Givename1 Addr12 City123 Name2 Givename2 Addr21 City214 Name2 Givename2 Addr22 City225 Name2 Givename2 Addr23 City23
收件人:
姓氏姓氏地址城市地址城市地址城市1名称1给定名称1 Addr11 City11 Addr12 City122名称2给定名称2 Addr21 City21 Addr22 City22 Addr23 City23
我不在乎重复的列名,它看起来像那样或带有其他地址号
在熊猫中:您可以使用groupby.cumcount()
到groupby.cumcount()
一个辅助系列,其后是assign
的列格式:
assign
unstack()
注意:如果您想将unstack()
和final=(df.assign(k=df.groupby(['Surname','Givename']).cumcount())
.set_index(['Surname','Givename','k']).unstack().sort_index(level=1,axis=1))
final.columns=[f'{a}_{b}' for a,b in final.columns.values]
print(final)
作为列而不是索引,则可以执行 Address_0 City_0 Address_1 City_1 Address_2 City_2
Surname Givename
Name1 Givename1 Addr11 City11 Addr12 City12 NaN NaN
Name2 Givename2 Addr21 City21 Addr22 City22 Addr23 City23
。