gpt4 book ai didi

python - Pandas to_sql 如何确定将哪个数据框列放入哪个数据库字段?

转载 作者:IT王子 更新时间:2023-10-29 06:23:36 24 4
gpt4 key购买 nike

我目前正在使用 Pandas to_sql 将大型数据框放入 SQL 数据库中。我正在使用 sqlalchemy 连接数据库,该过程的一部分是定义数据库表的列。

我的问题是,当我在数据帧上运行 to_sql 时,它如何知道数据帧中的哪一列进入数据库中的哪个字段?它是在查看数据框中的列名并在数据库中查找相同的字段吗?是变量的顺序吗?

下面是一些便于讨论的示例代码:

engine = create_engine('sqlite:///store_data.db')
meta = MetaData()

table_pop = Table('xrf_str_geo_ta4_1511', meta,
Column('TDLINX',Integer, nullable=True, index=True),
Column('GEO_ID',Integer, nullable=True),
Column('PERCINCL', Numeric, nullable=True)
)

meta.create_all(engine)

for df in pd.read_csv(file, chunksize=50000, iterator=True, encoding='utf-8', sep=',')
df.to_sql('table_name', engine, flavor='sqlite', if_exists='append', index=index)

有问题的数据框有 3 列 TDLINX、GEO_ID 和 PERCINCL

最佳答案

答案确实是你所建议的:它正在查看列名。所以匹配列名很重要,顺序无关紧要。

为了完全正确, Pandas 实际上不会检查这个。 to_sql 在底层执行的是执行插入语句,其中要插入的数据作为字典提供,然后由数据库驱动程序来处理。
这也意味着 pandas 不会检查数据类型或列数(例如,如果不是数据库的所有字段都作为数据框中的列出现,这些行将在数据库中填充默认值)。

关于python - Pandas to_sql 如何确定将哪个数据框列放入哪个数据库字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34771256/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com