Python 仅从CSV导入两列
我有一个CSV文件,有20列和100行。我只想使用其中两列创建一个SQLite数据库—第1列中的日期和第10列中的温度。我已经修改了我找到的一些示例代码,但不确定如何让它只使用这两列Python 仅从CSV导入两列,python,sqlite,Python,Sqlite,我有一个CSV文件,有20列和100行。我只想使用其中两列创建一个SQLite数据库—第1列中的日期和第10列中的温度。我已经修改了我找到的一些示例代码,但不确定如何让它只使用这两列 import csv, sqlite3 import sys filename = sys.argv[-1] con = sqlite3.connect("my.db") con.execute("create table stats(date, temperature)")
import csv, sqlite3
import sys
filename = sys.argv[-1]
con = sqlite3.connect("my.db")
con.execute("create table stats(date, temperature)")
cur = con.cursor()
stats = csv.reader(open(filename))
con.executemany("insert into stats(date, temperature) values (?, ?)", stats)
con.commit()
您可以使用仅读取指定列并将其写入DB
import sqlite3
from pandas.io import sql
import pandas as pd
from StringIO import StringIO
s = """Year,Make,Model
1997,Ford,E350
2000,Mercury,Cougar"""
f = StringIO(s)
df = pd.read_csv(f, usecols = ['Year','Model']) # reads specified cols
# to a DataFrame
con = sqlite3.connect(':memory:')
sql.write_frame(df, name='test', con=con)
print sql.read_frame('select * from test', con) # reads data back
# to DataFrame
输出:
import sqlite3
from pandas.io import sql
import pandas as pd
from StringIO import StringIO
s = """Year,Make,Model
1997,Ford,E350
2000,Mercury,Cougar"""
f = StringIO(s)
df = pd.read_csv(f, usecols = ['Year','Model']) # reads specified cols
# to a DataFrame
con = sqlite3.connect(':memory:')
sql.write_frame(df, name='test', con=con)
print sql.read_frame('select * from test', con) # reads data back
# to DataFrame
Year Model
0 1997 E350
1 2000 Cougar