繁体   English   中英

DuckDB - 有效地将 pandas dataframe 插入到带有序列的表中

[英]DuckDB - efficiently insert pandas dataframe to table with sequence

CREATE TABLE temp (
    id UINTEGER,
    name VARCHAR,
    age UINTEGER
);
CREATE SEQUENCE serial START 1;

插入系列工作得很好:

INSERT INTO temp VALUES(nextval('serial'), 'John', 13)

如何使用 pandas dataframe 的序列?

data = [['Alex',10],['Bob',12],['Clarke',13]]
df = pd.DataFrame(data,columns=['Name','Age'])
print(df)
     Name  Age
0    Alex   10
1     Bob   12
2  Clarke   13

con.execute("INSERT INTO temp SELECT * FROM df")
RuntimeError: Binder Error: table temp has 3 columns but 2 values were supplied

我不想逐项迭代。 目标是有效地将 1000 个项目从 python 插入 DB。 我可以将 pandas 更改为其他内容。

在阅读 df 时,您不能将 nextval('serial') 作为 select 查询的一部分吗?

例如,

con.execute("INSERT INTO temp SELECT nextval('serial'), Name, Age FROM df")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM