tl;dr
- csvの取り込みはPythonに組み込みモジュールが用意されている
-
Pandas
を使うと、より柔軟にデータを取り込み、加工できるためメリットが多い。- headerの取り込みが容易となる
- 数値と文字列が混在しているデータを柔軟に処理できる
- C言語にて作られているため高速
What I did?
今回はstripeに登録した商品付フィードcsvを、sqlite3
のDBに取り込んだ。
stripeには商品フィードと価格フィードの2つがあるため、それぞれproducts.csv
, prices.csv
となっている。別々のテーブルにする必要を感じなかったため、mergeして一つのデータとしています。データは Pandas.to_sql
csv_to_db_py
def add_data():
conn = sqlite3.connect('products.db', isolation_level=None)
df_product = pd.read_csv('csv/products.csv', usecols=[0, 1, 4])
df_price = pd.read_csv('csv/prices.csv', usecols=[0, 1, 7, 8])
# csvデータ2つをmrge
df = df_product.merge(df_price, how='inner', left_on='id', right_on='Product ID')
#delete duplicated column
df = df.drop(columns=['id'])
#Pandas to_sql
df.to_sql(name='products', con=conn, if_exists='replace', index=False)
conn.close()
Ref.
Pandas read.csv
https://pandas.pydata.org/docs/reference/api/pandas.read_csv.html