python每天的数据分析_每日PV-Pandas-Python数据分析(3)

本文展示了如何使用Python的Pandas库分析日志数据,统计每日页面访问量(PV)。通过定义解析器解析日志文件,然后将数据转换成DataFrame,再按日期分组并计算访问次数。
摘要由CSDN通过智能技术生成

cat pd_ng_log_stat.py

#!/usr/bin/env python

#-*- coding: utf-8 -*-

from ng_line_parser import NgLineParser

import pandas as pd

import socket

import struct

class PDNgLogStat(object):

def __init__(self):

self.ng_line_parser = NgLineParser()

def _log_line_iter(self, pathes):

"""解析文件中的每一行并生成一个迭代器"""

for path in pathes:

with open(path, 'r') as f:

for index, line in enumerate(f):

self.ng_line_parser.parse(line)

yield self.ng_line_parser.to_dict()

def load_data(self, path):

"""通过给的文件路径加载数据生成 DataFrame"""

self.df = pd.DataFrame(self._log_line_iter(path))

def pv_day(self):

"""计算每一天的 PV"""

group_by_cols = ['access_time'] # 需要分组的列,只计算和显示该列

# 下面我们是按 yyyy-mm-dd 形式来分组的, 所以需要定义分组策略:

# 分组策略为: self.df['access_time'].map(lambda x: x.split()[0])

pv_day_grp = self.df[group_by_cols].groupby(

self.df['access_time'].map(lambda x: x.split()[0]))

return pv_day_grp.agg(['count'])

def main():

file_pathes = ['www.ttmark.com.access.log']

pd_ng_log_stat = PDNgLogStat()

pd_ng_log_stat.load_data(file_pathes)

# 统计每日 pv

print pd_ng_log_stat.pv_day()

if __name__ == '__main__':

main()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值