1

我正在分析一个 Apache 访问日志文件,我想找到命中数。
下面的代码做到了:

ips = df.groupby('IP').size()
ips.sort()
print ips[-10:]

但我想找到前 10 名的“推荐人”(第 9 列)ips
我怎样才能做到这一点?

示例日志文件行:

112.135.128.20 - [13/May/2013:23:55:04 +0530] "GET /SVRClientWeb/ActionController HTTP/1.1" 302 2 "https://www.example.com/sample" "Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10B329" GET /SVRClientWeb/ActionController - HTTP/1.1 www.test.com 
4

1 回答 1

1

使用伊辛

您可以先对您的 ips 进行排序并获取最后 10 个 ips 的索引。

ips.sort()
top_ips = ips.tail(10).index

然后用于isin获取您需要的推荐人:

referrers = df[df['IP'].isin(top_ips)]['Referrer']
于 2013-06-10T08:10:03.887 回答