我应该使用什么来将匹配的字段(由两个键匹配)附加到同一行而不是在单独的行中?我对groupby()函数有点熟悉,但我无法弄清楚用于字符串或数字的内容(SO上的答案似乎只适用于整数)。当我尝试聚合函数时,我收到一个关于'SeriesGroupBy'没有属性'IP Address'或'Hostname'的错误,我仍在使用它来查看它是否是解决方案。
我想获取这些数据:
host ip user
nom1 10.41.3.2 Kelly
nom1 10.41.3.3 Kate
nom2 10.5.5.5 Mary
nom3 10.1.1.2 Joe
把它变成这个:
host ip user
nom1 10.41.3.2, 10.41.3.3 Kelly, Kate
nom2 10.5.5.5 Mary
nom3 10.1.1.2 Joe
这是我的合并方法:final = pd.merge(a, b, on=["Computer Name", "IP Address", "User Name"], how='outer')
答案 0 :(得分:4)
使用Groupby.agg
和自定义函数连接由分隔符分隔的字符串,该分隔符将应用于分组对象的所有列:
df.groupby('host', as_index=False).agg(lambda grp: ', '.join(grp))