1

複数のソースから経時的なカウントをグラフ化しようとしていますが、収集ジョブがソースの 1 つ (すべてではなく複数) で失敗すると問題が発生します。

次のような一連のデータがあるとします。

 date       |  count
---------------------
 10-11-2013 |   50
 11-11-2013 |   52
 13-11-2013 |   63

そして別のような

 date       |  count
---------------------
 10-11-2013 |   15
 11-11-2013 |   19
 12-11-2013 |   17
 13-11-2013 |   20

なんらかの理由で、最初の 12 日のデータ入力がありません。この単一のオブジェクトで作業している場合、その要素をスキップするだけで問題なくグラフ化でき、その日の線は不正確になります。

問題は、複数の情報源があり、そのうちの少なくとも 1 つがその日の結果を報告することに成功した場合です。すべての毎日のカウントの合計を取得するクエリセットがあります。

DailyCount.objects.values('date').annotate(count=Sum('count')).order_by('date')

この結果は、12 日のエントリではるかに低い数値を示しています。これが発生するたびに、グラフが非常に間違って見えるようになります。

 date       |  count
---------------------
 10-11-2013 |   65
 11-11-2013 |   71
 12-11-2013 |   17
 13-11-2013 |   83

クエリセットが存在しない場合、前の日付のカウントを使用する方法はありますか? 前日のカウントをデータベースに追加することを考えましたが、検証できないときにデータベースにいくつかの (おそらく間違った) データを追加するのは正しくないようです。

理想的には、次のようになると思います。

 date       |  count
---------------------
 10-11-2013 |   65
 11-11-2013 |   71
 12-11-2013 |   69
 13-11-2013 |   83
4

1 に答える 1

0

グラフの表示方法によって異なります。ではpandas、時系列データも保存でき、説明した機能を正確に提供します。以前または将来の値 (つまり、 ) を使用して、欠損値をバックフィルまたはフォワードフィルしますpandas.DataFrame.fillna。一方で、その機能だけのためにそのライブラリを使用するのはやり過ぎですが、より多くのデータ操作を行う予定がある場合は便利です。

QuerySetDjangoは欠損値を埋めるように構築されていないため、欠損値を埋めることはできないと思います。ただし、クエリ結果から値を取得し、グラフを表示する前に適切な毎日の値を計算することで、手動で計算できます。

于 2013-11-13T22:40:56.823 に答える