利用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 北京市