Ich habe ein Wörterbuch mit 2 Tasten (i und j), die die gleichen sind wie Indizes in einem Datenrahmen. Beispiel für Datenrahmen - Anforderungen für unterschiedliche i- und j-Paarungen.Python - Calling Dictionary w/2 Keys
i j Demand
0 1 13
0 2 24
0 3 68
0 4 92
0 5 72
0 6 11
0 7 12
0 8 6
0 9 4
0 10 3
1 1 0
1 2 11
1 3 15
. . .
Die i gehen von 0 bis 9 und die Wiederholung des j für jedes i von 1 bis 10. Ein Wörterbuch für Buchungen wurde aus dieser Forderung als solche akzeptiert gebaut:
bookingsaccepted = pulp.LpVariable.dicts("bookingsaccepted",
((i, j) for i, j in demand.index), lowBound=0, cat='Integer')
Und jetzt versuche ich, Werte im Books Acceptant Dictionary zu referenzieren. Ich versuche, eine Beschränkung in der Pulpa festzulegen, so dass alle (i, j) Paare, bei denen i = 0 ist, summiert werden. Ich benutze das, aber es funktioniert nicht und ich kann nicht herausfinden warum.
model += pulp.lpSum([bookingsaccepted[(0,j)] for j in demand.index]) <= capacity
gibt Fehler: KeyError: (0, (0, 1))
Von Ihrer oben genannten Post sieht es aus wie 'demand.index' gibt Tupel, so dass Sie nur einen einzigartigen Satz von dem bekommen müssen zweiter Gegenstand. 'model + = pulp.lpSum ([bookingsaccepted [(0, j)] für j in Menge (b) für a, b in demand.index]) <= capacity' – rlbond