如何使用to_sql保留pandas数据帧列

时间:2017-11-15 15:33:46

标签: pandas sqlite

我想将数据帧中的一些数据存储到sqlite数据库中。我正在做以下事情:

首先创建一个数据库:

conn = sqlite3.connect("mydatabase.db") 

然后将数据框df中的表添加到数据库:

df.to_sql(table_name, conn,if_exists='append')

然后从数据库中查询表:

cur = conn.cursor()
cur.execute("SELECT * FROM table_name")
rows = cur.fetchall()
df2=pd.DataFrame(rows)

df2没有原始的通用名称,但已重新索引为0,1,2,3等。

如何保留原始数据框的列?

谢谢

1 个答案:

答案 0 :(得分:2)

试试这个:

df2 = pd.read_sql("SELECT * FROM table_name", conn)
某种颜色:

你的表很好,它有列,你使用cur.fetchall()获取值的元组列表,它没有列名的任何信息,所以pandas只使用数字。

read_sql()检查列名称并为您执行