次の形式の行を含む IIS ログ ファイルがあります。
61.245.163.59 - [16/May/2013:23:55:09 +0530] "GET /ehrm/Recruitment/Images/divider.gif HTTP/1.1" 404 1245 " http://www.example.com/ehrm/ Recruitment/MyApplication.aspx?PRF_ID=000005&digest=6LL4BTSuW9YnE5R4T8k27Q " "Mozilla/5.0 (Windows NT 6.1; rv:20.0) Gecko/20100101 Firefox/20.0" GET /ehrm/Recruitment/Images/divider.gif - HTTP/1.1 www.example .com
これからいくつかの列を取得して、データフレームを構築したいと思います。次のメソッドでは、1 つの列を持つデータフレームを構築するだけです。各分割列をデータフレームの 1 つの列にしたいですか? もう 1 つは、ログ ファイルの行の長さが一意ではないことです。このように分割して値を取得する精度を向上させるにはどうすればよいでしょうか。
log_list = []
for line in f:
ip = (line.split(' ')[0])
time = (line.split(' ')[2])
method = (line.split(' ')[4])
status = (line.split(' ')[7])
bytes = (line.split(' ')[8])
referrer = (line.split(' ')[9])
agent = (line.split(' ')[10])
data = ip + ' ' + time + ' ' + method + ' ' + status + ' ' + bytes + ' ' + referrer + ' ' + agent
log_list.append(data)
df = pandas.DataFrame(log_list)