【发布时间】:2016-04-18 16:43:33
【问题描述】:
我目前正在使用 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
【问题讨论】:
-
你的 df.to_sql 命令运行良好,除了 index=index 的东西。它一直给我某种索引错误,直到我猜测使用 index=False 并且它像冠军一样工作。我也根本没有使用“风味”参数。非常感谢
标签: python database pandas sqlite sqlalchemy