我有一個單一的數據框類似如下:Python的大熊貓GROUPBY工作不正常
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
我想GROUPBY的「IP」欄中,這樣它將聚集重複到同一行。
所需的輸出:
ip domain
0 46.101.214.145 cnwkabrnyld1c0[.]com | anfj63m[.]com | anf3xnem[.]com
3 69.195.129.70 cnwkabrnyld1c0[.]com
4 69.195.129.70 anfj63ms[.]com
這看起來非常簡單的基礎上,無數的SOF和熊貓文件我一直在讀。
這裏是我的代碼:
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
有趣 - 我用你的代碼得到想要的結果。你確定你的初始DataFrame是發佈的嗎? – Alex
它實際上更大,我使用[。]而不是使用[。]清理域(爲了安全起見)。 – gleb1783
您的代碼似乎是正確的... – MaxU