我有一个数据帧,如下所示:
ip domain
0 46.101.214.145 cnwkabrnyld1c0[.]com
1 46.101.214.145 anfj63m[.]com
2 46.101.214.145 anf3xnem[.]com
3 69.195.129.70 cnwkabrnyld1c0[.]com
4 69.195.129.70 anfj63ms[.]com
我尝试按“ip”列分组,这样它将把重复项聚合到同一行上。在
期望输出:
^{pr2}$基于我阅读过的数不清的SOF和Panda文档,这似乎相当直接。在
我的代码是:
pDNSPanda = pd.read_csv('/tmp/pDNSCSV.csv', names=['ip', 'domain'])
g = pDNSPanda.groupby("ip").agg('|'.join)
我得到的是:
domain
ip
0.0.0.0 ip|domain
1.1.1.200 ip|domain
1.148.56.163 ip|domain
1.167.81.129 ip|domain
1.193.28.230 ip|domain
编辑:
有人建议我针对上面的数据集尝试我自己的代码。在
test.csv
46.101.214.145 cnwkabrnyld1c0[.]com
46.101.214.145 anfj63m[.]com
46.101.214.145 anf3xnem[.]com
69.195.129.70 cnwkabrnyld1c0[.]com
69.195.129.70 anfj63ms[.]com
>>> import pandas as pd
>>> p = pd.read_csv('/tmp/test.csv', names=['ip', 'domain'])
>>> g = p.groupby("ip").agg("|".join)
>>> print g
domain
ip
46.101.214.145 anfj63m[.]com ip|domain
46.101.214.145 anf3xnem[.]com ip|domain
46.101.214.145 cnwkabrnyld1c0[.]com ip|domain
69.195.129.70 anfj63ms[.]comp|domain
69.195.129.70 cnwkabrnyld1c0[.]com ip|domain
在
groupby
和agg
命令之间需要domain
。如果需要,在管道连接周围添加间距,例如' | '.join(...)
。在如果您的域中有浮动,最好将它们转换为字符串。在
^{pr2}$我认为第
ip
列中的第一个值是唯一的,就像我的第一行和第二行一样——那么在groupby
之后的domain
列中只有一个值:但我认为最好是将
groupby
与aggregate column一起使用,正如他在回答中提到的Alexander
。在相关问题 更多 >
编程相关推荐