我正在尝试获取数据帧并将其转换为sql。我首先创建表,以设置唯一索引,以允许滚动更新,如果碰巧有两个A.杆随着时间推移重复。虽然我似乎无法动摇这个表列错误,但我不知道为什么。
import pandas as pd
import sqlite3 as sq
conn = sq.connect('test.db')
c = conn.cursor()
def set_table():
c.execute("""CREATE TABLE IF NOT EXISTS players(
"#" INTEGER,
" " REAL,
"Named" TEXT,
"B/T" TEXT,
"Ht" TEXT,
"Wt" TEXT,
"DOB" TEXT);""")
conn.commit()
def set_index_table():
c.execute(""" CREATE UNIQUE INDEX index_unique
ON players (Named, DOB)""")
conn.commit()
set_table()
set_index_table()
roster_active = pd.read_html('http://m.yankees.mlb.com/roster',index_col=0)
df = roster_active[0]
df = df.rename(columns={'Name': 'Named'})
df.to_sql('players', conn, if_exists='append')
conn.commit()
conn.close()
sqlite3.OperationalError:表格播放器没有名为
的列感谢您的时间。
答案 0 :(得分:0)
所以我不完全确定为什么这不起作用,但我发现我怎么能让它发挥作用。我认为这与数据框索引有关。所以我定义了我想为数据框选择哪些列,哪些有效。
df = df[['Named','B/T', 'Ht','Wt','DOB']]