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

如何将Pandas DataFrame的指定单列/多列插入SQLite数据库?

Pandas DataFrame 插入SQLite指定单列/多列方法

一、插入单列(简洁实现)

你原来的单列插入代码是可行的,这里提供更简洁的写法:

crsr = conn.cursor()
sql = "INSERT INTO vendor (VendorID) VALUES (?)"
# 直接将目标列转为单元素元组的列表
data = [(row,) for row in df['VendorID']]
crsr.executemany(sql, data)
conn.commit()

二、插入多列(以时间列为例)

要插入tpep_pickup_datetime和tpep_dropoff_datetime这类多列,只需调整SQL语句的字段和占位符,同时把DataFrame对应列转为多元素元组列表即可:

假设你的SQLite表名为trip_data,包含对应时间字段,代码如下:

crsr = conn.cursor()
# 构造插入语句:字段和占位符一一对应
sql = "INSERT INTO trip_data (tpep_pickup_datetime, tpep_dropoff_datetime) VALUES (?, ?)"
# 提取目标列,生成元组列表(每行是一个含两个值的元组)
data = list(df[['tpep_pickup_datetime', 'tpep_dropoff_datetime']].itertuples(index=False, name=None))
crsr.executemany(sql, data)
conn.commit()

也可以用apply生成元组列表,效果一样:

data = df[['tpep_pickup_datetime', 'tpep_dropoff_datetime']].apply(tuple, axis=1).tolist()

三、通用工具函数(支持任意单列/多列)

如果需要频繁插入不同列,可以写个通用函数,一次处理任意数量的列:

def insert_columns_to_sqlite(conn, table_name, df, columns):
    crsr = conn.cursor()
    cols_str = ", ".join(columns)
    placeholders = ", ".join(["?"] * len(columns))
    sql = f"INSERT INTO {table_name} ({cols_str}) VALUES ({placeholders})"
    # 生成符合要求的数据格式
    data = list(df[columns].itertuples(index=False, name=None))
    crsr.executemany(sql, data)
    conn.commit()

# 调用示例:插入单列VendorID
insert_columns_to_sqlite(conn, 'vendor', df, ['VendorID'])

# 调用示例:插入两个时间列
insert_columns_to_sqlite(conn, 'trip_data', df, ['tpep_pickup_datetime', 'tpep_dropoff_datetime'])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 17:35:36