pandas读取csv写入SQLite时列名带前置空格如何解决
结论
pandas的to_sql方法本身没有提供可直接忽略列名前置空格的配置参数,你遇到的列名带空格的问题,根源是read_csv读取阶段就已经把分隔符后的空格纳入了DataFrame列名,to_sql只是原样把列名映射到了SQLite的表结构中。
两种可行解决方式
- 读取CSV阶段直接处理(最优)
调用read_csv时开启skipinitialspace=True参数,会自动忽略分隔符后的所有前置空格,读出来的列名天然没有多余空格:import pandas as pd import sqlite3 conn = sqlite3.connect('你的数据库文件路径.db') # 开启skipinitialspace自动跳过分隔符后的前置空格 df = pd.read_csv('目标csv文件路径.csv', skipinitialspace=True) df.to_sql('table1', con=conn, if_exists='replace', index=False) - 读取后手动清理列名
如果已经完成了CSV读取,不想重新加载文件,可以直接清洗DataFrame的列名后再写入数据库:# 批量去除所有列名的前后空格 df.columns = df.columns.str.strip() df.to_sql('table1', con=conn, if_exists='replace', index=False)
内容的提问来源于stack exchange,提问作者etch_45
相关产品推荐
相关产品推荐

