首先,对于这个问题的糟糕名字,我深表歉意。
我的问题是我似乎无法转换此数据框:
进入此数据框:
我尝试了很多事情:
堆栈,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
答案 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