我目前正在使用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',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