【发布时间】:2023-04-06 07:00:01
【问题描述】:
我有一个带有重复标识符的字符串变量和很多空单元格的数据框。
我想按标识符分组并将所有值放在一行中。如果一列有多个条目或一个标识符,我需要一个带后缀的新行,以便稍后识别它。
这是我的数据
ID name1 name2 name3 name4 name5 name6 name7 name8
Tom sarah mike
Tom john john
Gen paul
Gen sandra
Gen lara lara lara lara
Gen mike mike
Lara bill bill bill
Lara josh josh
Lara kevin kevin kevin mike
Lara devon devon devon
这是我迄今为止从here使用的代码:
grouped = df1.groupby('ID')
df1 = grouped.aggregate(lambda x: tuple(x))
这给了我以下结果:
name1 name2 name3 \
ID
Gen (paul, nan, nan, nan) (nan, sandra, nan, nan) (nan, nan, lara, nan)
Lara (bill, nan, nan, nan) (bill, nan, nan, nan) (bill, nan, nan, nan)
Tom (sarah, nan) (nan, nan) (nan, nan)
name4 name5 \
ID
Gen (nan, nan, lara, nan) (nan, nan, lara, nan)
Lara (nan, josh, kevin, nan) (nan, josh, kevin, nan)
Tom (mike, nan) (nan, john)
name6 name7 name8
ID
Gen (nan, nan, lara, nan) (nan, nan, nan, mike) (nan, nan, nan, mike)
Lara (nan, nan, kevin, nan) (nan, nan, mike, devon) (nan, nan, nan, devon)
Tom (nan, john) (nan, nan) (nan, nan)
但这是我真正想要的,我只是不知道该怎么做:
ID name1 name2 name3 name3_suffixA name3_suffixB name4 name4_suffixA name5 name6 name6_suffixA name7 name8
Tom sarah mike john john
Gen paul sandra lara lara lara lara mike mike
Lara bill bill bill josh kevin josh kevin kevin mike devon devon devon
后缀的实际名称无关紧要,也无关紧要,如果附加条目出现在末尾或中间。
有一些类似的问题,我知道。但我无法处理任何案例/解决方案,我非常感谢一些帮助。
【问题讨论】:
标签: python-3.x pandas aggregate pandas-groupby