目的
在數(shù)據(jù)分析時(shí),很多場(chǎng)景下是對(duì)數(shù)據(jù)進(jìn)行整理喂很、匯總和規(guī)整缔御。雖然Pandas有類似SQL的操作抬闷,但真正的使用SQL還是方便不少。本文演示怎么通過SQL對(duì)數(shù)據(jù)進(jìn)行預(yù)處理耕突,并返回結(jié)果到DF中笤成。
import pandas as pd
from sqlalchemy import create_engine
# default
engine = create_engine('mysql+pymysql://ledao:ledao123@localhost/pandas_learn')
編寫SQL處理語(yǔ)句,并返回結(jié)果
pd.read_sql_query("select cityid, cellid, sum(fee) as fee_sum from cellfee group by cityid, cellid", con=engine)
即眷茁,通過Pandas的read_sql_query方法炕泳,將sql放到第一個(gè)位置,設(shè)置con=上祈,即可將數(shù)據(jù)的預(yù)處理部分放到數(shù)據(jù)庫(kù)中去做培遵。
如果遠(yuǎn)程的數(shù)據(jù)庫(kù)性能強(qiáng)悍浙芙,更加推薦這種方法。
數(shù)據(jù)的維護(hù)交給數(shù)據(jù)庫(kù)籽腕,真的能減輕數(shù)據(jù)分析中的數(shù)據(jù)維護(hù)壓力嗡呼,想象一個(gè)你面對(duì)一大堆的csv文件(excel文件)的感受。
刪除數(shù)據(jù)庫(kù)中的表
如果是中間表皇耗,那么需要在結(jié)束流程后將臨時(shí)表刪除南窗。我們通過sqlalchemy 生成的engine來實(shí)現(xiàn)。
engine.execute('drop table if exists todelete')