通过串联与唯一ID相关的值来转换数据框

时间:2018-09-13 01:18:20

标签: pandas

首先,对于这个问题的糟糕名字,我深表歉意。

我的问题是我似乎无法转换此数据框:

enter image description here

进入此数据框:

enter image description here

我尝试了很多事情:
堆栈,groupby,数据透视,自我连接(合并),宽->长等。我被卡住了。

我觉得这不应该那么难-我一定想念一些东西。任何建议将不胜感激。

df = [    {'name' : 'Andy', 'col1': 's'},
          {'name' : 'Andy', 'col1':   't'},
          {'name' : 'Andy', 'col1':  'u'},
          {'name' : 'Andy', 'col1':  'v'},
          {'name' : 'Bob', 'col1':  'a'},
          {'name' : 'Bob', 'col1':  'b'},
          {'name' : 'Carl', 'col1':  'howdy'},
          ]
df = pd.DataFrame(df)
df = df[['name', 'col1']]
df

2 个答案:

答案 0 :(得分:2)

使用groupby

print(df)

    name    col1
0   Andy    s
1   Andy    t
2   Andy    u
3   Andy    v
4   Bob     a
5   Bob     b
6   Carl    howdy

df.groupby('name')['col1'].apply(' '.join).reset_index()

# Output:
    name    col1
0   Andy    s t u v
1   Bob     a b
2   Carl    howdy

答案 1 :(得分:1)

只需使用sum

(df.col1+' ').groupby(df.name).sum().str[:-1]
Out[259]: 
name
Andy    s t u v
Bob         a b
Carl      howdy
Name: col1, dtype: object