因为本周有一个是需要使用 pandos 做一个数据分析的需求, 所以在这里做一下记录.
Python 中用 Pandas 进行数据分析, 最常用的就是 Dataframe 数据结构,
这里我们主要介绍 Pandas 如何读取数据到 Dataframe.
Pandas 读取 MySQL 数据要读取 MySQL 中的数据, 首先要安装 Mysqldb 包. 假设我数据库安装在本地, 用户名位 myusername, 密码为 mypassword, 要读取 mydb 数据库中的数据, 那么对应的代码如下:
- import pandas as pd
- import MySQLdb
- mysql_cn= MySQLdb.connect(host='localhost', port=3306,user='myusername', passwd='mypassword', db='mydb')
- df = pd.read_sql('select * from test;', con=mysql_cn)
- mysql_cn.close()
上面的代码读取了 test 表中所有的数据到 df 中, 而 df 的数据结构为 Dataframe.
Pandas 读取 CSV 文件数据 Pandas 读取 CSV 文件中的数据要简单的多, 不用额外安装程序包, 假设我们要读取 test.CSV 中的数据, 对应的代码如下:
df = pd.read_csv(loggerfile, header=None, sep=',')
header=None 表示没有头部, sep=','表示字段之间的分隔符为逗号.
关于对数据分析的思考
这里的需求是根据本周的数据得到对比上周的数据的环比趋势等信息. 但是由于数据一直都是增量更新到数据库, 所以需要用需要使用时间字段控制查询范围,
这里补充几个关于数据库查询的 sql
查询今天的数据
select * from tj where to_days(now()) = to_days(tjsj)
查询 z 昨天的数据
select * from tj where to_days(now()) - to_days(tjsj) = 1
查询本周数据
select * from tj where tjsj>= subdate(curdate(),date_format(curdate(),'%w')-1) and tjsj <= subdate(curdate(),date_format(curdate(),'%w')-7)
查询上周数据
select * from tj where tjsj>= subdate(curdate(),date_format(curdate(),'%w')+6) and tjsj <= subdate(curdate(),date_format(curdate(),'%w')-0)
需求完成阶段如下:
1, 使用数据库查询 sql, 查询出符合条件的上周数据. 查询创建时间是上周, 或者更新时间是上周的数据.
2, 使用数据库查询 sql, 查询出符合条件的本周数据. 查询创建时间是本周, 或者更新时间是本周的数据.
3, 进行数据分析的工作, 得到想要的数据. 分析 1,2 得到的数据, 并且进行运算.
计划本工作两日完成.
来源: http://www.bubuko.com/infodetail-3475497.html