djangoでpandas使うのは簡単だった
pandas使ってデータ分析しているサイトがよくあって、 私も参考にしているのですが大体csv使ってませんか?
少ないデータだったらcsvで良いと思うんですけど、 apiやスクレイピングデータ取るときってdbに突っ込みませんか?
djangoのormでデータをdbにつっこんで、そのまま分析するほうが効率的な気がします。 そもそも、csvからデータ抜くの整形の処理やタイトルつけたりめんどくさいです。
そんなときは、"django-pandas"で楽をしちゃいましょう。
https://github.com/chrisdev/django-pandas
インストール
pip install django-pandas
サンプルは自分で作っているビットコインの足(日足とか分足とか)みたいなものです。
model
モデルはこんな感じです
class BitcoinTicker(models.Model): bc_id = models.IntegerField('bc_id', unique =True) high = models.DecimalField('high', max_digits=25, decimal_places=10, blank=True, null=True) low = models.DecimalField('low', max_digits=25, decimal_places=10, blank=True, null=True) volume = models.DecimalField('volume', max_digits=25, decimal_places=10, blank=True, null=True) timestamp = models.DateTimeField('timestamp')
pandasデータフレームへの変換
from app.models import BitcoinTicker from django_pandas.io import read_frame bitcoin_ticker = BitcoinTicker.objects.all() df_bitcoin_ticker = read_frame(bitcoin_ticker)
カラムhighのデータが有るか確かめてみましょう。
df_bitcoin_ticker.high
こんな感じで簡単にできます。
最近はデータ分析にdjangoベースでやったほうがだいぶ楽なんじゃと思ったりしています。