您好,登錄后才能下訂單哦!
這篇文章主要介紹了Pandas與SQL怎么整合使用的相關(guān)知識,內(nèi)容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Pandas與SQL怎么整合使用文章都會有所收獲,下面我們一起來看看吧。
pandas中的DataFrame是一個二維表格,數(shù)據(jù)庫中的表也是一個二維表格,因此在pandas中使用sql語句就顯得水到渠成,pandasql使用SQLite作為其操作數(shù)據(jù)庫,同時Python自帶SQLite模塊,不需要安裝,便可直接使用。
這里有一點需要注意的是:使用pandasql讀取DataFrame中日期格式的列,默認會讀取年月日、時分秒,因此我們要學(xué)會使用sqlite中的日期處理函數(shù),方便我們轉(zhuǎn)換日期格式。
導(dǎo)入相關(guān)庫:
import pandas as pd
from pandasql import sqldf
聲明全局變量的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é)果如下:
student = pd.read_excel("student.xlsx")
pysqldf = lambda q: sqldf(q, globals())
query1 = """
select sqlite_version(*)
"""
pysqldf(query1)
結(jié)果如下:
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é)果如下:
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é)果如下:
關(guān)于“Pandas與SQL怎么整合使用”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對“Pandas與SQL怎么整合使用”知識都有一定的了解,大家如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。