2

20列と数百行のCSVファイルがあります。2つの列だけを使用してSQLiteデータベースを作成したいと思います。列1の日付と温度は列10です。見つけたサンプルコードを変更しましたが、これら2つの列だけを使用するようにする方法がわかりません。

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()
4

2 に答える 2

1
con.executemany("insert into stats(date, temperature) values (?, ?)",
                ((rec[0], rec[9]) for rec in stats))
于 2013-02-18T10:05:15.723 に答える
1

パンダを使用して、指定された列のみを読み取り、それらをに書き込むことができます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

アウト:

   Year   Model
0  1997    E350
1  2000  Cougar
于 2013-02-18T10:26:04.940 に答える