2017-02-02 14 views
0
という名前の列はありません

私はデータフレームを取得し、SQLに変換しようとしています。私は時間の経過とともに2つのA. Rodsが発生した場合、重複していないローリング・アップデートを可能にするユニークな索引付けを最初に作成しています。私はこのテーブルの列のエラーを振るように見えることはできませんが、私は理由を知らない。sqlite3.OperationalError:テーブルテストには

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

"名前" TEXTは "名前"にする必要があります。 – e4c5

+0

お時間をありがとう!私はコードを編集して、もう "名前"の問題がないようにしました。今私は似たようなエラーが発生します:テーブルプレーヤーには名前の列がありません。もしあなたが私がそれを大いに感謝する考えを持っていれば、まだ失われています。 –

答えて

0

私はこれがなぜ機能しないのか完全には分かっていませんが、どのように動作させるのかが分かりました。私はそれがデータフレームインデックスと関係があると信じています。だから私はデータフレームのために何を選択したいのかを定義しました。

df = df[['Named','B/T', 'Ht','Wt','DOB']]