Pandas DataFrame列名错位修复:SQLite3导入后列名位置异常处理
解决方法
你的问题本质是Pandas把第一列CUSIP识别成了索引,导致它单独显示在列名行下方,而非和其他列名并列。以下两种方法可以快速修正:
方法1:读取SQL时提前规避
用pd.read_sql_query读取数据时,添加index_col=False参数,阻止Pandas自动将第一列设为索引:
import pandas as pd import sqlite3 # 连接数据库 conn = sqlite3.connect('你的数据库文件.db') # 读取数据,禁用自动索引 df = pd.read_sql_query("SELECT * FROM 目标表名", conn, index_col=False) # 关闭连接 conn.close()
方法2:已读取数据后修正
如果已经得到了异常格式的DataFrame,按以下步骤调整:
- 将索引转为普通列:
df.reset_index(inplace=True)
- 重新设置完整列名:
df.columns = ['CUSIP', '(x$1000)', 'PRN AMT', 'TICKER']
- (可选)若需要保留
CUSIP为索引(和你的期望输出一致):
df.set_index('CUSIP', inplace=True)
处理后就能得到你想要的格式:
CUSIP (x$1000) PRN AMT TICKER 594918104 3034828140 1612323669 MSFT 037833100 2463247977 2628732382 AAPL 02079K305 2096049986 93429916 GOOGL
内容的提问来源于stack exchange,提问作者C_Turbo
相关产品推荐
相关产品推荐

