通过匹配Pandas

时间:2016-12-16 18:31:24

标签: python-2.7 pandas

我应该使用什么来将匹配的字段(由两个键匹配)附加到同一行而不是在单独的行中?我对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')

1 个答案:

答案 0 :(得分:4)

使用Groupby.agg和自定义函数连接由分隔符分隔的字符串,该分隔符将应用于分组对象的所有列:

df.groupby('host', as_index=False).agg(lambda grp: ', '.join(grp))

enter image description here