結果に注釈を付ける必要があります。
cred_rec = Disponibilidad.objects.values('mac__mac', 'int_mes').annotate(tramites=Count('fuar'), recibidas=Count('fecha_disp_mac')
cred14 = Disponibilidad.objects.filter(int_disponible__lte=14).values('mac__mac', 'int_mes').annotate(en14=Count('fuar'))
両方とも同じキー'mac__mac'
と を持っています。私が望むのは、キー inとfrom'int_mes'
を使用して新しい辞書を作成することです。cred_red
en14
cred14
ここにあるいくつかの回答 を試してみまし たが、何かが欠けています。
ありがとう。
編集。いくつかの試行錯誤の後、私はこれを得ました:
for linea in cred_rec:
clave = (linea['mac__mac'], linea['int_mes'])
for linea2 in cred14:
clave2 = (linea2['mac__mac'], linea2['int_mes'])
if clave2 == clave:
linea['en14'] = linea2['en14']
linea['disp'] = float(linea2['en14'])/linea['recibidas']*100
今、私はより良い解決策を求めなければなりません。再度、感謝します。
======= 編集 これは入力がどのように見えるかです:
fuar, mac_id, int_mes, int_disponible, int_exitoso, fecha_tramite, fecha_actualiza_pe, fecha_disp_mac
1229012106349,1,7,21,14,2012-07-02 08:33:54.0,2012-07-16 17:33:21.0,2012-07-23 08:01:22.0
1229012106350,1,7,25,17,2012-07-02 09:01:25.0,2012-07-19 17:45:57.0,2012-07-27 17:45:59.0
1229012106351,1,7,21,14,2012-07-02 09:15:12.0,2012-07-16 19:14:35.0,2012-07-23 08:01:22.0
1229012106352,1,7,24,16,2012-07-02 09:25:19.0,2012-07-18 07:52:18.0,2012-07-26 16:04:11.0
... a few thousand lines dropped ...
これfuar
は order_id のようなものです。mac__mac
のようなものsite_id
ですmonth
。とint_disponible
の間の timedeltaです。との間の timedeltaです。fecha_tramite
fecha_disp_mac
int_exitoso
fecha_tramite
fecha_actualiza_pe
出力は次のようになります。
mac, mes, tramites, cred_rec, cred14, % rec, % en 14
1, 7, 2023, 2006, 1313, 99.1596638655, 65.4536390828
1, 8, 1748, 1182, 1150, 67.6201372998, 97.2927241963
2, 8, 731, 471, 441, 64.4322845417, 93.6305732484
3, 8, 1352, 840, 784, 62.1301775148, 93.3333333333
- トラマイト
fuar
は、 1 か月のすべての注文 ( ) の合計です。 - cred_rec cred は私たちの製品です。理論的には各fuarにcredがあり、1 か月に生成されたすべての credの
cred_rec
合計です。 - cred_14は、14 日間に作成されたすべての信用の合計です。
- % rec受け取った fuar と生成された cred の関係 (%)
- % en 14は、生成された信用と時間内に生成された信用との関係です。
この表を注釈付きタイム ラインチャートまたはGoogle Chartsのコンボ チャートで使用して、製造プロセスのパフォーマンスを示します。
御時間ありがとうございます。