分组依据,数据扩展到新列

问题描述 投票:0回答:1

如何在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

我不在乎重复的列名,它看起来像那样或带有其他地址号

python r pandas
1个回答
0
投票

在熊猫中:您可以使用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

© www.soinside.com 2019 - 2024. All rights reserved.