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. ...
随机推荐
- win7 64位 VS2010调试提示“ORA-12154: TNS: 无法解析指定的连接标识符”的解决方法
如果使用工具可以连接Oralce说明与Oralce安装无法. 解决方法: 解决步骤: 1.去网上下载"instantclient-basic-win32-11.2.0.1.0.zip&quo ...
- 短链(ShortURL)的Java实现
什么叫短链或短址? 就是把长的 URL 转成短的 URL, 现在提供这种服务的有很多公司,我们以google家的 URL shortener 服务: http://goo.gl/ 为例. 任何长网址都 ...
- 【学】React的学习之旅1
React的学习之旅1 单标签要有斜杠代表结束 用React.createClass()方法时,赋值后的组件名称首字母一定要大写 一定要先定义组件,再用ReactDOM.render调用 组件里ren ...
- maven scope含义的说明
依赖范围控制哪些依赖在哪些classpath 中可用,哪些依赖包含在一个应用中.让我们详细看一下每一种范围: compile (编译范围) compile是默认的范围:如果没有提供一个范围,那该依赖的 ...
- 彻底搞定char/wchar_t/unicode
彻底搞定char/wchar_t!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! (2013-07-17 10:18:28) 转载▼ 从char/wchar_t到TCHAR(1) ...
- DEDE后台登录和前台验证码不显示的解决方法
DEDE后台登录和前台验证码不显示的解决方法,网络上现在有好几种方法,某些时候还是有用的.说说自己今天遇到的一个情况,跟其他不一样的原因和解决方法: 方法一 1.用ftp把网站根目录下的DATA文件 ...
- Google公布了禁用Chrome插件后的新解决方案
chrome://flags/#enable-npapi 启用npapi后重启chrome,再打开 chrome://plugins/
- [转]理解HTTP幂等性
基于HTTP协议的Web API是时下最为流行的一种分布式服务提供方式.无论是在大型互联网应用还是企业级架构中,我们都见到了越来越多的SOA或RESTful的Web API.为什么Web API如此流 ...
- 开源免费的天气预报接口API以及全国所有地区代码(国家气象局提供)
天气预报一直是各大网站的一个基本功能,最近小编也想在网站上弄一个,得瑟一下,在网络搜索了很久,终于找到了开源免费的天气预报接口API以及全国所有地区代码(国家气象局提供),具体如下: 国家气象局提供的 ...
- Java温故系列之web项目复习
如果从外面导入项目 操作方法为: File->Import -->General-->Existing Project into Workspace 搭建sqlserver数据库连接 ...