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. ...
随机推荐
- OA项目笔记-从建立接口 dao impl action jsp等框架实现crud
1,设计 BaseDao 与 BaseDaoImpl 1,设计接口 BaseDao 1,每个实体都应有一个对应的Dao接口,封装了对这个实体的数据库操作.例 实体 Dao接口 实现类 ======== ...
- 常见的HTTP返回码如4xx, 5xx
常见的HTTP返回码如4xx, 5xx Client Error =====================400 Bad Request 因为错误的语法导致服务器无法理解请求信息.401 Unaut ...
- Java 技术文章摘录
sokcet 编程实例 android bundle类 Android -- Looper.prepare()和Looper.loop() —深入版 Java NIO系列教程 XML操作 Androi ...
- JavaScript的学习2
1. a.字符串运算符 符号 功能 + 字符串连接 += 将左边的值加上右边的值然后再赋值给左边的变量 b.比较运算符 运算符 含义 说明 > 大于 M>N,当M大于N时,返回TRUE ...
- EA使用
类逻辑图 关系1:泛化(继承),Driver和Northeastermer继承了Person类 关系2:实现,Northeastermer实现了LivingLeiFeng类 关系3: 关联,两个对象 ...
- HTML5服务器推送消息的各种解决办法
摘要 在各种BS架构的应用程序中,往往都希望服务端能够主动地向客户端推送各种消息,以达到类似于邮件.消息.待办事项等通知. 往BS架构本身存在的问题就是,服务器一直采用的是一问一答的机制.这就意味着如 ...
- ADVDAV驱动
// ADV7179 register configuration array for PAL mode ADI_DEV_ACCESS_REGISTER ADV7179_Cfg[]={ {ADV717 ...
- Oracle分区表!
Oracle 数据库分区表的创建和操作 摘要:在大量业务数据处理的项目中,可以考虑使用分区表来提高应用系统的性能并方便数据管理,本文详细介绍了分区表的使用. 在大型的企业应用或企业级的数据库应用中,要 ...
- Dapper with MVC MiniProfiler
Dapper是一个轻型的ORM类.代码就一个SqlMapper.cs文件,主要是IDbConnection的扩展方法,编译后就118K的一个很小的dll.官方站点http://code.google. ...
- Linq并行执行
一. 并行LINQ 1. 并行查询 .NET4在System.Linq名称空间中包含一个新类ParalleIEnumerable ,可以分解查询的工作使其分布在多个线程上.尽管Enmerab ...