我把excel文件讀取爲df,用SQL查詢、分析,它不香嗎?

本文的文字及圖片來源於網絡,僅供學習、交流使用,不具備任何商業用途,若有問題請及時聯繫咱們以做處理。python

如下文章來源於統計與數據分析實戰 ,做者嚴小樣兒sql

 

python很是好用,pandas也不差,可是,SQL仍然是最香的語言,若是把二者結合起來怎麼樣?請看~網絡

下載、導入第三方庫

下載:python -m pip install pandasql
導入:from pandasql import sqldf,load_births,load_meat學習

from pandasql import sqldf,load_births,load_meat

 

加載內置數據集

df1 = load_births()
df2 = load_meat()

 

預覽數據查看前幾行spa

df1.head()

 

 

預覽數據查看後幾行3d

df2.tail()

 

 

調用sqldf方法,參數爲sql語句

sql = """
        select 
            date,count(*) as n
        from df1 
        group by date
        order by n desc;
      """
result = sqldf(sql)
result[result['n']==3]

 

對比一下,結果是相同的excel

df1['date'].value_counts().head(12)

1991-12-01    3
1991-10-01    3
1991-06-01    3
1991-08-01    3
1991-09-01    3
1991-04-01    3
1991-02-01    3
1991-01-01    3
1991-03-01    3
1991-07-01    3
1991-11-01    3
1991-05-01    3
Name: date, dtype: int64

 

 

聚合效果

sql2 = """
        select max(beef),min(pork),sum(turkey),count(veal)
        from df2;
    """
result2 = sqldf(sql2)
result2 

 

多表鏈接也是能夠的哦~

df1.merge(df2,on='date',how = 'inner')

sql3 = """
        select df1.*,df2.* 
        from df1 inner join df2 
        on df1.date = df2.date;
        """
result3 = sqldf(sql3)

resul

 

總結

這個庫使用起來很是簡單,只要你會寫SQL語句就能夠用,df與sql,哪一個方便用哪一個。說實話,我仍是喜歡用SQL,當我把excel文件讀取爲df後,用SQL查詢、分析,它不香嗎?!code

相關文章
相關標籤/搜索