因為本周有一個是需要使用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 得到的數據,並且進行運算。
計划本工作兩日完成。