8 python sql sqlalchemy dataframe pandas
我知道我们可以使用 SQLAlchemy 从数据库导入数据。但是,当您只需导入数据并将其转换为数据帧,然后使用 pandas 和其他 Python 库对其进行操作时,为什么要选择 SQLAlchemy 来操作数据呢?
我知道这是一个基于意见的问题,但我认为了解差异很重要,特别是导入数据和操作数据非常耗时。通过确定要使用的正确方法,可以节省大量时间,从而在 StackOverflow 上节省有关特定主题的许多问题。
更准确地说,当 pandas 就足够了时,为什么还要使用 SQL Alchemy 来操作数据。是否有 SQL Alchemy 击败 pandas 的具体案例。
当我说操纵时,我指的是加、减、计数、计算百分比或平均值,即数学函数和其他数据操纵技术(分组、排序、附加、降序或升序排列......)。
以下是您想要同时使用 Pandas 和 SQL Alchemy 时的示例:
想象一下,您需要从 DataFrame(有 100.000 行)更新数据库表(假设它有 100.000.000 行并且无法放入内存)。即,您的 DF 中有一列ID,并且您希望使用 DF 中的数据更新数据库表中这些 ID 的列。在这种情况下,您可以将 DF 作为表转储到数据库中,并UPDATE ...使用 SQL Alchemy 执行语句。
这是一个小演示:
df.to_sql('tmp', conn, if_exists='replace')
sql = """
UPDATE table_name set last_seen = (SELECT t.last_seen
FROM tmp t
WHERE t.id = table_name.id)
WHERE EXISTS(
SELECT *
FROM tmp
WHERE tmp.id = table_name.id
)
"""
cursor.execute(sql)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5973 次 |
| 最近记录: |