SQLiteのデータベースからデータを抽出し、PandasでDataFrameにしてからPythonで加工してグラフにしました。
下記はクチコミのデータを全件抽出して、文字数がどれぐらいの分布をしているのかヒストグラムを描くもので、意図通り動作しています。
python
1import sqlite3 2import pandas as pd 3import matplotlib.pyplot as plt 4 5# DBに接続 6conn = sqlite3.connect('db.sqlite3') 7c = conn.cursor() 8c.execute(''' 9 SELECT id, txt 10 FROM comment; 11 ''') 12 13# PandasのDataFrameを作る 14cols = ['id', 'txt_len'] 15df = pd.DataFrame(index=[], columns=cols) 16 17# DataFrameにDBのデータを入れる 18while True: 19 line = c.fetchone() 20 if line is None : 21 break 22 df = df.append(pd.Series([line[0], len(line[1])], index=df.columns), ignore_index=True) 23 24print(df['lyric_len'].describe()) 25 26# グラフの描画 27plt.hist(x=df['lyric_len'], bins=10)
が、これが結構遅くて、SQLで LIMIT 10000
した状態で30秒ほどかかります。
本当は50万行ぐらいあり、文字数カウントの他にもPythonでいろんな加工をしながらデータの特徴を探してみたいと思っています。
できればもっと早く動くといいと思っているんですが、改善できるところはあるでしょうか?
回答1件
あなたの回答
tips
プレビュー