2016-03-30 10 views
-1
import pandas as pd 
import sqlite3 

conn = sqlite3.connect('newdb.sqlite') 
cur = conn.cursor() 
cur.executescript(''' 
DROP TABLE IF EXISTS Policy; 
DROP TABLE IF EXISTS Statecode; 
DROP TABLE IF EXISTS County; 
DROP TABLE IF EXISTS Line; 
DROP TABLE IF EXISTS Construction; 
DROP TABLE IF EXISTS Point_Granularity; 

CREATE TABLE Statecode (
    id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE, 
    name TEXT UNIQUE 
); 

CREATE TABLE County (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE, 

name TEXT UNIQUE 
); 
CREATE TABLE Line(
id INTEGER NOT NULL PRIMARY KEY 
    AUTOINCREMENT UNIQUE, 
name TEXT UNIQUE); 
CREATE TABLE Construction(
id INTEGER NOT NULL PRIMARY KEY 
    AUTOINCREMENT UNIQUE, 
name TEXT UNIQUE); 
CREATE TABLE Point_Granularity(
id INTEGER NOT NULL PRIMARY KEY 
    AUTOINCREMENT UNIQUE, 
number INTEGER UNIQUE); 

CREATE TABLE Policy (
id INTEGER NOT NULL PRIMARY KEY 
    AUTOINCREMENT UNIQUE, 
policyID INTEGER , 
eq_site_line FLOAT, 
hu_site_line INTEGER, 

statecode_id INTEGER, 
county_id INTEGER, 
line_id INTEGER, 
construction_id INTEGER, 
point_granularity_id INTEGER 
); 
''') 
df = pd.read_csv('FL_insurance_sample.csv') 
for policy in df.policyID: 
    cur.execute('INSERT INTO Policy (policyID) VALUES (?)',policy) 
    conn.commit() 
+0

Versuchen Sie: 'cur.execute ('INSERT INTO-Richtlinie (policyID) VALUES (?)', (Politik,))' – bernie

+0

Das ist auch nicht passiert. Ich habe die Klammern zuerst ausprobiert. –

+0

Oh ok. Was ist der Fehler genau? Bitte lege das in deine Post. – bernie

Antwort

0

Ich glaube, mit policy.astype (int) sollte für diesen Fall funktionieren? Kann jemand bestätigen?

+0

Es funktioniert, aber es ist verdammt langsam. Möglicherweise ist die .csv-Datei sehr groß. Aber es sollte noch nicht so viel Zeit brauchen. –

0

Im Grunde wollen Sie nicht Ihre Datenrahmen durchlaufen - Sie würden dann alle Vorteile Pandas verlieren und es wird auch zu langsam sein. Sie möchten mit Datenrahmen arbeiten:

df = pd.read_csv('FL_insurance_sample.csv') 
df.to_sql('Policy', conn) 

PS möchten Sie vielleicht „Massage“ Ihre Daten vor, so wird es

PPS in Ihre Tabellenstruktur passen, wenn Sie ein funktionierendes Beispiel möchten, sollten Sie eine Probe zur Verfügung stellen Ihrer Eingangsdaten - 5-10 Zeilen wären genug

Verwandte Themen