我的问题是,当我在数据帧上运行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
解决方法 答案确实是你的建议:它正在查看列名称.因此匹配列名很重要,顺序无关紧要.为了完全正确,大熊猫实际上不会检查这一点. to_s_s在幕后做的是执行一个insert语句,其中要插入的数据作为dict提供,然后由数据库驱动程序来处理它.这也意味着pandas不会检查dtypes或列数(例如,如果不是数据库的所有字段都作为数据帧中的列出现,这些将填充数据库中这些行的默认值).
总结以上是内存溢出为你收集整理的python – Pandas to_sql如何确定将哪个dataframe列放入哪个数据库字段?全部内容,希望文章能够帮你解决python – Pandas to_sql如何确定将哪个dataframe列放入哪个数据库字段?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)