为什么pandas调用to_sql时即便删除索引仍会插入索引列?
解决pandas to_sql写入数据库时额外生成index列的问题
pandas.DataFrame.to_sql()方法的index参数默认值为True,会自动将DataFrame的索引作为单独列写入目标表,该逻辑不受你是否重置索引、是否指定选取列的影响,只要未手动修改参数就会生效。你之前尝试的df.reset_index(drop=True)无法解决问题,是因为重置索引只是修改了索引的值,并没有关闭to_sql写入索引的逻辑。
修正方案为在to_sql参数中新增index=False,即可跳过写入索引列的步骤,修正后的代码如下:
df[['ticker', 'year', 'GHG','provided']].to_sql('tmp_GHG', engine, if_exists='replace', method='multi', index=False)
修改后写入数据库的表只会包含你指定的ticker、year、GHG、provided四个字段,不会额外生成index列。
内容的提问来源于stack exchange,提问作者Lostsoul
相关产品推荐
相关产品推荐

