Ich habe zwei Pandas-Datenframes, die ich zusammenführen muss. Der erste ist ein Langform-Datensatz, der meine Verkaufspreise für Artikel zu verschiedenen Mengenpausen enthält. Die Preise sinken, wenn die Anzahl der gekauften Teile steigt.Pandas verschmelzen, skalieren und drehen Langform- und Wide-Form-Datenframes
Dataframe1
PART# MY_QTY MY_PRC
Item1 1 $20
Item1 10 $18
Item1 20 $17
Item2 1 $120
Item2 30 $100
Item2 50 $95
Die zweite ist eine weit Form Datensatz mehrere Lieferanten Menge Pausen und Verkaufspreise enthalten. Für Item1 unten, wenn ich 1 Stück von Vend1 kaufe, bezahle ich $ 10, 4 Stück ist immer noch $ 10, 5pcs ist $ 8, etc. Die Anzahl der Anzahl Brüche variiert nach Artikel und Anbieter, und nicht alle Anbieter verkaufen alle Artikel.
Dataframe2
PART# VEND# QTY1 PRC1 QTY2 PRC2 QTY3 PRC3
Item1 Vend1 1 $10 5 $8 15 $7
Item1 Vend2 1 $15 11 $12 30 $11
Item1 Vend3 1 $20 10 $18
Item2 Vend1 1 $75 20 $60 30 $55
Item2 Vend2 1 $80 12 $70
Ich mag den Datenrahmen fusionieren, so dass ich meinen Verkaufspreis bei jedem meiner Menge breche mit dem Verkäufer Kosten bei gleichen Mengen vergleichen. Der endgültige Datenrahmen wird die Form einer linken Zusammenführung auf TEIL # haben, wobei VEND # zu Spalten geschwenkt wird.
Der Teil, mit dem ich Schwierigkeiten habe, ist das Ergreifen des korrekten Lieferantenpreises basierend auf MY_QTY. Ich sollte in der Lage sein, quer durch eine Reihe zu lesen und zu sehen, was alle Parteien für einen Gegenstand in der gegebenen Menge verlangen. Erwartete Ausgabe unten.
Ergebnis Datenrahmen
PART# MY_QTY MY_PRC VEND1 VEND2 VEND3
Item1 1 $20 $10 $15 $20
Item1 10 $18 $8 $15 $18
Item1 20 $17 $7 $12 $18
Item2 1 $120 $75 $80
Item2 30 $100 $55 $70
Item2 50 $95 $55 $70
EDIT
scheinen Menschen mit Dataframe2 werden immer verwirrt. Dieser Datenrahmen wird zeilenweise gelesen. Die erste Reihe der Werte zeigt die Preise für Artikel1, die von Verkauf1 verkauft werden. Für diese Reihe von QTY1 (1 Stück) bis QTY2 (5 Stück) ist der Preis PRC1 ($ 10), dann von QTY2 (5 Stück) bis QTY3 (15 Stück) ist der Preis PRC2 ($ 8). Der Preis bleibt gleich, bis die angeforderte Menge die nächste Mengenpause erreicht.
Say Mama Farmstand verkauft Äpfel für $ 1 pro Stück. Wenn Sie 5 Äpfel kaufen, fällt der Preis pro Apfel auf $ 0,75. Wenn Sie 15 Äpfel kaufen, fällt der Preis wieder auf $ 0,50. Der Datenrahmen für dieses Beispiel würde wie folgt aussehen.
PART# VEND# QTY1 PRC1 QTY2 PRC2 QTY3 PRC3
Apple Mama 1 $1 5 $.75 15 $.5
In der zweiten Reihe sortiert werden 'MY_QTY' ist' 10' und wie '' VEND1' 8 'es gibt keinen Preis für QTY 10 na – Dark
Möglich, Ihren aktuellen Code zu teilen und welche Fehler Sie laufen? – ShreyasG
interagiert der 'QTY1' im zweiten Datenframe überhaupt mit dem Ergebnisdatenrahmen? – MattR