pandas 有没有一种方法可以在Python中使用SQL同时访问数据库和 Dataframe ?

lqfhib0f  于 2023-04-28  发布在  Python
关注(0)|答案(2)|浏览(114)

有没有一种方法可以在Python中使用SQL访问数据库和 Dataframe ?
例如,有没有可能做一些像...

select a.*, b.* from {database} as a left join {dataframe} as b on a.key = b.key

其中 database 是SQL服务器上的数据,dataframe 是Python(Pandas或其他)dataframe ...?

yeotifhr

yeotifhr1#

是的,可以在Python中使用SQL访问数据库和dataframe。
您可以使用pandasql库在dataframe上运行SQL查询。
你可以试试这个

import pandas as pd
from pandasql import sqldf

# Read the data from a SQL database into a dataframe
conn = pd.read_sql('SELECT * FROM your_table', your_database_connection)

# Create a Python dataframe
df = pd.DataFrame({'key': [1, 2, 3], 'value': ['a', 'b', 'c']})

# Merge the two dataframes using SQL
query = '''
    SELECT a.*, b.*
    FROM conn AS a
    LEFT JOIN df AS b
    ON a.key = b.key
'''
result = sqldf(query, locals())

# Display the result
print(result)
klsxnrf1

klsxnrf12#

我建议将{dataframe}表示为fake-table上的常量SELECT
在Oracle/MySQL中:

SELECT 'Hello world' as column1
FROM DUAL

在Postgres中:

SELECT 'Hello world' as column1

在SQLAlchemy中,您可以使用literals来实现这一点。
这种方法取决于{dataframe}的大小,可能会导致一个庞大的SQL命令。

相关问题