Python 2.7_pandas连接MySQL数据处理_20161229
在我本地Mysql_local_db数据库建立了一个pandas数据表用来对pandas模块的学习 学习过程借鉴学习蓝鲸的网站分析笔记
1、创建表
CREATE TABLE pandastest(
城市 VARCHAR(255),
用户ID INT(19),
订单日期 DATE,
金额 DECIMAL(19,4),
金额区间 VARCHAR(255),
订单数 INT(19),
上次订单日期 DATE,
距上次订单天数 INT(19),
上次金额 DECIMAL(19,4),
距上次订单间隔区间 VARCHAR(255),
品类数 INT(19),
KEY city (城市),
KEY res_id(用户ID)
)ENGINE=INNODB DEFAULT CHARSET=utf8;
2、Kettle导入测试数据 对数据进行了处理
3、执行SQL查询数据
4、Pycharm中编写代码
用pandas模块进行连接MySQL数据库 numpy 模块进行创建数组 matplotlib进行绘图
代码如下:
#coding:utf-8
import sys
import MySQLdb
from datetime import datetime
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
#系统编码置为'utf-8'
reload(sys)
sys.setdefaultencoding('utf-8')
#连接mysql 其中conn为pandas模块 read_sql方法的第二个参数
conn=MySQLdb.connect(host='127.0.0.1',user='root',passwd='密码',port=3306,db='local_db',charset='utf8')
sql='''
SELECT 城市,用户ID,订单日期,金额,金额区间,订单数
FROM pandastest
WHERE 订单日期<'2016-12-26'
limit 10000
'''
#用pandas模块中read_sql方法获取数据表(含表头和数据) real_sql 包含两个参数 一个是执行的sql 这里用sql变量代替 也可用字符串代替 一个是con=conn
df = pd.read_sql(sql, con=conn)
conn.close()
#练习对df中订单日期字段进行拆分成年月日操作 for循环为遍历日期型数据 因此用datetime模块中的strftime方法将日期型转换为字符型
date_time=pd.DataFrame((x.strftime("%Y-%m-%d").split('-') for x in df['订单日期']),columns=['year','month','day'])
#将date_time拆分开后的年月日和df的数据横行合并
df=pd.merge(df,date_time,right_index=True, left_index=True)
print df
#按金额区间进行汇总
jinequjian=df.groupby('金额区间')['金额区间'].agg(len)
print jinequjian
#图表字体为华文细黑 字号为11
plt.rc('font', family='STXihei', size=11)
#创建一个一维数组
a=np.array([1,2,3,4])
#创建条形图 数据源为jinequjian这个变量(金额区间汇总) 设置颜色 透明度 居中对齐和图表边框
plt.barh([1,2,3,4],jinequjian,color='#052B6C',alpha=0.8,align='center',edgecolor='white')
#y轴标题
plt.ylabel('金额区间')
#x轴标题
plt.xlabel('客户数')
#x轴长度
plt.xlim(0,8000)
#y轴长度
plt.ylim(0,6)
#图表的标题
plt.title('各金额区间客户分布情况')
#图例及显示位置
plt.legend(['客户数'], loc='upper right')
#背景网格线的颜色样式 尺寸 和透明度
plt.grid(color='#375589',linestyle='--', linewidth=2,axis='y',alpha=0.4)
#设置y轴上的数据分类名称和金额区间group by 的字段保持一致
plt.yticks(a,('(000到500元含)','(500到1000元含)','(1000到1500元含)','(1500元以上)'))
#展现表
plt.show()
Python 2.7_pandas连接MySQL数据处理_20161229的更多相关文章
- Python 3.5 连接Mysql数据库(pymysql 方式)
由于 MySQLdb 模块还不支持 Python3.x,官方的Mysql连接包只支持到3.4,所以 Python3.5 如果想连接MySQL需要安装 pymysql 模块. pymysql 模块可以通 ...
- python 3.5 连接mysql数据库
python 3.5 要连接mysql数据库,必须先安装pymysql模块,该模块可以操作mysql数据. 1.安装pymysql模块:使用pip进行安装 cmd打开运行模式,切换目录到pip的scr ...
- 【Python】Windows平台下Python、Pydev连接Mysql数据库
Mysql数据库是跨平台的,不是说Python一定就要连接Mongodb. Python连接Mysql数据库是非常easy的. 首先,你要配置好Python的开发环境,详见<[Python]Wi ...
- Python 使用pymysql连接MySQL
由于 MySQLdb 模块还不支持 Python3.x,所以 Python3.x 如果想连接MySQL需要安装 pymysql 模块. pymysql 模块可以通过 pip 安装.但如果你使用的是 p ...
- python使用sqlalchemy连接mysql数据库
环境:centos7+python2.7.5+sqlalchemy sqlalchemy是python当中比较出名的orm程序.在python中,使用sqlalchemy连接mysql数据库进行操作非 ...
- 【python】python3连接mysql数据库
一.安装pymysql 详见http://www.runoob.com/python3/python3-mysql.html 二.连接mysql数据库 db = pymysql.connect( #连 ...
- Python学习—Pycharm连接mysql服务器
安装pymysql pip3 install pymysql 安装Mysql客户端驱动(基于Pycharm工具) 点击download,下载mysql驱动 等待驱动安装成功后,点击OK即可 创建数据库 ...
- Mac下python连接mysql数据库
一.下载Mysql官方connector驱动 地址:https://dev.mysql.com/downloads/connector/python/ 根据提示安装.dmg文件即可. 二.验证是否安装 ...
- django 1.11.1 连接MySQL
一.定义数据库 settings.py搜索 DATABASES 参考路径: D:\Python27\Lib\site-packages\django\bin\app\app\settings. ...
随机推荐
- ERROR: HHH000123: IllegalArgumentException in class: com.tt.hibernate.helloworld.News, setter method of property: date
问题描述: Hibernate连接数据库时,报出如下错误: 十一月 29, 2016 3:08:31 下午 org.hibernate.tool.hbm2ddl.SchemaUpdate execut ...
- ios中图片拉伸用法
- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCap ...
- 学习C++的第三天
1.sort函数(默认升序排序(从小到大)) 要使用此函数只需用#include <algorithm> sort即可使用,语法描述为: sort(begin,end),表示一个 ...
- 每天一个 Linux 命令(14):head 命令
head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然尔就是看档案的结尾. 1.命令格式: hea ...
- JS toFixed 四舍六入五成双
以前一直以为toFixed就是四舍五入的方法,后来又有一段时间以为toFixed是五舍六入.今天终于写的时候,终于才知道toFixed是一个叫做四舍六入无成双的诡异的方法... 完全不明白为什么要这么 ...
- 通过seekBar改变图片的透明度
作者:堕落的天使 对应的图片 activity_main.xml(代码) <RelativeLayout xmlns:android="http://schemas.android.c ...
- 从零开始,教你用Webpack构建React基础工程
参考 http://www.jianshu.com/p/4df92c335617
- 搞定迅雷固件在TP-LINK WR720N,127.0.0.1 9000 获取不到激活码
本帖最后由 exzzzipad 于 2014-7-2 22:33 编辑 基本情况:设备:TP-LINK WR720N目前固件:[antclan][20120825]720N-4M-NAS-withSA ...
- Dapper with MVC MiniProfiler
Dapper是一个轻型的ORM类.代码就一个SqlMapper.cs文件,主要是IDbConnection的扩展方法,编译后就118K的一个很小的dll.官方站点http://code.google. ...
- ionic tabs置顶
找了好久怎么解决这问题,终于找到了一哥们留下来的经验,万分感谢,特此拷贝过来,留着下次以免忘记 我在主页ion-nav-bar元素上添加hide-nav-bar=“true”;然后又在ion-view ...