我正在尝试使用此代码从大型csv文件中提取数据并插入到数据库中。中的图式 数据库在代码中提供。但是,我在最后一行做错了。该 代码给了我价值错误。我正在使用pandas来读取csv文件。有人可以帮我指出我哪里出错了吗?
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 :(得分:0)
我相信,使用policy.astype(int)应该适用于这种情况?任何人都可以确认吗?
答案 1 :(得分:0)
基本上你不想循环你的数据框 - 你会失去所有熊猫的好处,而且它也会太慢。您想使用数据框:
zend_extension=xdebug.so
你可能想要按摩"按摩"您之前的数据将适合您的表格结构
PPS如果你想要一个工作实例,你应该提供输入数据的样本 - 5-10行就够了