Python 分组查找重复地址
Python group by find duplicate addresses
你好,我有一个数据框,其中有 Date、IP 地址 和 Username 列。
我想按数据框分组,以便找到具有多个用户的 IP 地址。
我想要这样的东西:
IP 地址 用户名
样本 1 用户 1
用户2
样本 2 用户 3
用户 4
我正在使用代码:
group=dict(df.groupby(by=['IP address','Date'])['Username'].count())
ips=list()
for k,v in group.items():
if v>=2:
ips.append(k)
ip_address=list()
for x in ips:
ip_address.append(x[0])
ip_address
ips=log_cumulative2[log_cumulative2['IP address'].isin(ip_address)]
当我将 df 导出到电子表格时,我也获得了 IPS,仅需一个 user.Any 帮助?
你可以做的是使用 agg
方法。在这种方法中,您可以传递一个字典,指示对每一列应该做什么。使用 agg
方法,您可以为每一列使用多种聚合方法:
result = df.groupby(['IP address','Date']).agg({
'Username':['count',list],
'ips':list })
# removing the unique ones
result = result[result['Username','count'] >=2]
这段代码创建了一个数据帧,其中包含每对唯一的 IP address
和 Date
的计数作为其索引。然后它有一个 Usernames
的列表。如果要删除重复的 Usernames
,可以使用 set
函数。
它还有一个 ips
.
的列表
你好,我有一个数据框,其中有 Date、IP 地址 和 Username 列。 我想按数据框分组,以便找到具有多个用户的 IP 地址。 我想要这样的东西: IP 地址 用户名 样本 1 用户 1 用户2 样本 2 用户 3 用户 4
我正在使用代码:
group=dict(df.groupby(by=['IP address','Date'])['Username'].count())
ips=list()
for k,v in group.items():
if v>=2:
ips.append(k)
ip_address=list()
for x in ips:
ip_address.append(x[0])
ip_address
ips=log_cumulative2[log_cumulative2['IP address'].isin(ip_address)]
当我将 df 导出到电子表格时,我也获得了 IPS,仅需一个 user.Any 帮助?
你可以做的是使用 agg
方法。在这种方法中,您可以传递一个字典,指示对每一列应该做什么。使用 agg
方法,您可以为每一列使用多种聚合方法:
result = df.groupby(['IP address','Date']).agg({
'Username':['count',list],
'ips':list })
# removing the unique ones
result = result[result['Username','count'] >=2]
这段代码创建了一个数据帧,其中包含每对唯一的 IP address
和 Date
的计数作为其索引。然后它有一个 Usernames
的列表。如果要删除重复的 Usernames
,可以使用 set
函数。
它还有一个 ips
.