python分析nginx日誌的ip(中篇一)

 利用python的數據分析pandas,numpy,matplotlib模塊進行可視化分析,畫出圖表,這幾個模塊須要獨立安裝,安裝好後須要用ipython --pylab方式打開。而且要引用MySQLdb模塊,爲了省事,我把數據統計這一塊直接在mysql數據庫中執行了,自己需求就不復雜,何況對pandas,matplotlib這幾個工具也剛接觸不久,持續深刻研究中,能簡則簡了。python


 

具體步驟以下,切記打開方式用 ipython --pylab
mysql

In [1]: from pandas import DataFrame,Series   
sql

In [2]: import pandas as pd

In [3]: import numpy as np   
數據庫

In [4]: import MySQLdb
#引入python數據分析模塊工具

In [5]:  mysql_cn= MySQLdb.connect(host='localhost', port=3306,user='root', passwd='root', db='testdb',charset='utf8')
索引

df = pd.read_sql('select count(1) as city_count_num,city from memory group by city order by city_count_num desc limit 10',mysql_cn)ip

#鏈接數據庫,轉換成pandas格式的數據
In [7]:  df.index=['suzhou','shanghai','shenzhen','weizhi','qingdao','fuzhou','foshan','changchun','kunming','beijing']
#重建索引,這一步原本不須要的,原本打算是用名字作索引,利用value_counts轉換能夠直接畫圖,可死活是亂碼,無可奈何,畫蛇添足了。你們主要就看「氣質」吧。ci

In [8]: df.plot(kind='barh',rot=0)
Out[8]: <matplotlib.axes._subplots.AxesSubplot at 0x7f8fb5148390>數據分析

#畫圖完成pandas

In [9]: df              #重建索引,轉換後的文件格式以下Out[9]:            num citysuzhou     520  蘇州市shanghai   374  上海市shenzhen   118  深圳市weizhi     104   未知      #國外的ip,在數據庫中是空的,我設置爲「未知」了qingdao     82  青島市fuzhou      81  福州市foshan      81  佛山市changchun   78  長春市kunming     76  昆明市beijing     76  北京市

相關文章
相關標籤/搜索