You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Polars DataFrame写入外部数据库(SQLite)?

将Polars DataFrame写入SQLite的方法

Polars目前没有像Pandas那样直接的to_sql()方法,但有几种可靠的方式可以实现写入SQLite的需求,下面是具体方案:

方法1:使用Polars内置的write_database(推荐,Polars 0.19.0+)

Polars从0.19.0版本开始新增了write_database方法,直接支持将DataFrame写入SQL数据库,包括SQLite。需要先安装sqlalchemy作为依赖:

pip install polars sqlalchemy

示例代码:

import polars as pl
from sqlalchemy import create_engine

# 示例Polars DataFrame
df = pl.DataFrame({
    "id": [1, 2, 3],
    "name": ["Alice", "Bob", "Charlie"],
    "age": [25, 30, 35]
})

# 建立SQLite连接
engine = create_engine("sqlite:///mydatabase.db")

# 写入数据库表
df.write_database(
    table_name="users",
    connection=engine,
    if_exists="replace"  # 可选值:replace(覆盖)、append(追加)、fail(存在则报错)
)

这个方法无需转换为Pandas DataFrame,内存效率更高,适合处理大规模数据。

方法2:转换为Pandas DataFrame后使用to_sql

如果你习惯Pandas的操作方式,或者使用的是旧版本Polars,可以先把Polars DataFrame转成Pandas的,再调用熟悉的to_sql:

import polars as pl
import pandas as pd
from sqlalchemy import create_engine

df = pl.DataFrame({
    "id": [1, 2, 3],
    "name": ["Alice", "Bob", "Charlie"],
    "age": [25, 30, 35]
})

engine = create_engine("sqlite:///mydatabase.db")

# 转换后写入,注意设置index=False避免把Polars的索引作为列写入
df.to_pandas().to_sql(
    name="users",
    con=engine,
    if_exists="append",
    index=False
)

⚠️ 注意:如果数据量很大,转换过程可能会占用较多内存,此时优先考虑方法1。

方法3:直接使用sqlite3模块手动写入

如果不想依赖SQLAlchemy,可以直接用Python内置的sqlite3模块,手动处理表创建和数据插入:

import polars as pl
import sqlite3

df = pl.DataFrame({
    "id": [1, 2, 3],
    "name": ["Alice", "Bob", "Charlie"],
    "age": [25, 30, 35]
})

# 连接SQLite数据库
conn = sqlite3.connect("mydatabase.db")
cursor = conn.cursor()

# 先创建表(如果不存在)
cursor.execute("""
CREATE TABLE IF NOT EXISTS users (
    id INTEGER PRIMARY KEY,
    name TEXT,
    age INTEGER
)
""")

# 将Polars数据转为元组列表,批量插入
data_rows = df.rows()
cursor.executemany("INSERT INTO users VALUES (?, ?, ?)", data_rows)

# 提交更改并关闭连接
conn.commit()
conn.close()

这种方式需要自己定义表结构,适合对SQL语法熟悉的用户,批量插入的效率也比较可观。

内容的提问来源于stack exchange,提问作者Shahar Luftig

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 01:37:16