<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Pandas與SQL的超強(qiáng)結(jié)合,爆贊!

          共 2377字,需瀏覽 5分鐘

           ·

          2022-05-19 13:03

          1. 演示數(shù)據(jù)

          本文的所有演示數(shù)據(jù),均是基于下方的四張表。下面這四張表大家應(yīng)該不陌生,這就是網(wǎng)傳50道經(jīng)典MySQL面試題中使用到的幾張?jiān)?。關(guān)于下方各表之間的關(guān)聯(lián)關(guān)系,我就不給大家說(shuō)明了,仔細(xì)觀察字段名,應(yīng)該就可以發(fā)現(xiàn)。

          2. pandasql的使用

          1)簡(jiǎn)介

          pandas中的DataFrame是一個(gè)二維表格,數(shù)據(jù)庫(kù)中的表也是一個(gè)二維表格,因此在pandas中使用sql語(yǔ)句就顯得水到渠成,pandasql使用SQLite作為其操作數(shù)據(jù)庫(kù),同時(shí)Python自帶SQLite模塊,不需要安裝,便可直接使用。

          這里有一點(diǎn)需要注意的是:使用pandasql讀取DataFrame中日期格式的列,默認(rèn)會(huì)讀取年月日、時(shí)分秒,因此我們要學(xué)會(huì)使用sqlite中的日期處理函數(shù),方便我們轉(zhuǎn)換日期格式,下方提供sqlite中常用函數(shù)大全,希望對(duì)你有幫助。

          sqlite函數(shù)大全http://suo.im/5DWraE

          導(dǎo)入相關(guān)庫(kù):

          import?pandas?as?pd
          from?pandasql?import?sqldf

          2)聲明全局變量的2種方式

          • ① 在使用之前,聲明該全局變量;
          • ② 一次性聲明好全局變量;
          ① 在使用之前,聲明該全局變量
          df1?=?pd.read_excel("student.xlsx")
          df2?=?pd.read_excel("sc.xlsx")
          df3?=?pd.read_excel("course.xlsx")
          df4?=?pd.read_excel("teacher.xlsx")


          global?df1
          global?df2
          global?df3
          global?df4
          query1?=?"select?*?from?df1?limit?5"
          query2?=?"
          select?*?from?df2?limit?5"
          query3?=?"
          select?*?from?df3"
          query4?=?"
          select?*?from?df4"

          sqldf(query1)
          sqldf(query2)
          sqldf(query3)
          sqldf(query4)

          部分結(jié)果如下:

          ② 一次性聲明好全局變量
          df1?=?pd.read_excel("student.xlsx")
          df2?=?pd.read_excel("sc.xlsx")
          df3?=?pd.read_excel("course.xlsx")
          df4?=?pd.read_excel("teacher.xlsx")

          pysqldf?=?lambda?q:?sqldf(q,?globals())

          query1?=?"select?*?from?df1?limit?5"
          query2?=?"
          select?*?from?df2?limit?5"
          query3?=?"
          select?*?from?df3"
          query4?=?"
          select?*?from?df4"

          sqldf(query1)
          sqldf(query2)
          sqldf(query3)
          sqldf(query4)

          部分結(jié)果如下:

          3)寫(xiě)幾個(gè)簡(jiǎn)單的SQL語(yǔ)句

          ① 查看sqlite的版本
          student?=?pd.read_excel("student.xlsx")
          pysqldf?=?lambda?q:?sqldf(q,?globals())
          query1?=?"""
          ????select?sqlite_version(*)
          """
          pysqldf(query1)

          結(jié)果如下:

          ② where篩選
          student?=?pd.read_excel("student.xlsx")
          pysqldf?=?lambda?q:?sqldf(q,?globals())
          query1?=?"""
          ????select?*?
          ????from?student?
          ????where?strftime('%Y-%m-%d',sage)?=?'1990-01-01'
          """
          pysqldf(query1)

          結(jié)果如下:

          ③ 多表連接
          student?=?pd.read_excel("student.xlsx")
          sc?=?pd.read_excel("sc.xlsx")


          pysqldf?=?lambda?q:?sqldf(q,?globals())
          query2?=?"""
          ????select?*
          ????from?student?s
          ????join?sc?on?s.sid?=?sc.sid
          """
          pysqldf(query2)

          部分結(jié)果如下:

          ④ 分組聚合
          student?=?pd.read_excel("student.xlsx")
          sc?=?pd.read_excel("sc.xlsx")


          pysqldf?=?lambda?q:?sqldf(q,?globals())
          query2?=?"""
          ????select?s.sname?as?姓名,sum(sc.score)?as?總分
          ????from?student?s
          ????join?sc?on?s.sid?=?sc.sid
          ????group?by?s.sname
          """
          pysqldf(query2)

          結(jié)果如下:

          ⑤ union查詢
          student?=?pd.read_excel("student.xlsx")
          pysqldf?=?lambda?q:?sqldf(q,?globals())
          query1?=?"""
          ????select?*?
          ????from?student?
          ????where?strftime('%Y-%m',sage)?=?'1990-01'
          ????union
          ????select?*?
          ????from?student?
          ????where?strftime('%Y-%m',sage)?=?'1990-12'
          """
          pysqldf(query1)

          結(jié)果如下:


          瀏覽 49
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  japαnese老熟女老熟妇 | 狠狠操天天操 | 成人吧欧美色图 | 免费AV观看 | 狼人综合免费视频 |