pandas
日付による集計を行うために使い始めました。私の目標は、特定の日に発生する測定のすべてのインスタンスをカウントし、これを で表すことですD3
。私のワークフローを説明するために、Django
次のようなクエリセット (から) があります。
queryset = [{'created':"05-16-13", 'counter':1, 'id':13}, {'created':"05-16-13", 'counter':1, 'id':34}, {'created':"05-17-13", 'counter':1, 'id':12}, {'created':"05-16-13", 'counter':1, 'id':7}, {'created':"05-18-13", 'counter':1, 'id':6}]
データフレームを作成し、作成された日ごとにpandas
メジャー「カウンター」を集計します。
import pandas as pd
queryset_df = pd.DataFrame.from_records(queryset).set_index('id')
aggregated_df = queryset_df.groupby('created').sum()
これにより、次のようなデータフレームが得られます。
counter
created
05-16-13 3
05-17-13 1
05-18-13 1
私が使用しているので、オブジェクトが最も役立つとD3
思いました。JSON
関数を使用してPandas
to_json()
、データフレームを次のように変換します。
aggregated_df.to_json()
私に次のJSON
オブジェクトを与える
{"counter":{"05-16-13":3,"05-17-13":1,"05-18-13":1}}
日付と測定値の両方にアクセスできるようにしたいので、これは私が望むものではありません。このような結果になるようにデータをエクスポートする方法はありますか?
data = {"c1":{"date":"05-16-13", "counter":3},"c2":{"date":"05-17-13", "counter":1}, "c3":{"date":"05-18-13", "counter":1}}
側でこれを別の方法で構造化できれば、次のような方法でデータをロードすることを計画してPython
いたので、側で行う必要があるデータのフォーマットの量を減らすことができると考えました。JS
x.domain(d3.extent(data, function(d) { return d.date; }));
y.domain(d3.extent(data, function(d) { return d.counter; }));
これは私が頻繁に行う必要があることですが、 と の間の接続を処理する最善の方法がわからないため、全体的により良いワークフローの提案を歓迎しD3
ますpandas
。(両方python
をD3
直接組み合わせたいくつかのパッケージを見てきましたが、静的チャートの生成に焦点を当てており、svg を作成していないように見えるため、探しているものではありません)