Ich habe zwei Datenrahmen DF
und DF2
und eine Liste List1
. Um es einfach zu halten, verwende ich eine Beispieleingabe. DF
und DF2
enthalten Elemente, die in List1
sind. DF
hat eine zufällige Anordnung dieser Elemente mit einigen NaN
Werten und in DF2
sind diese Elemente mit einer Nummer verknüpft. Dies ist, was ich zu tun beabsichtigen:
1. Iterate über List1
und wählen Sie die Zeilen in DF
, die dieses spezielle Element haben aus List1
2. In jeder der Reihen (ich bereits dieses getan haben), führen eine Multiplikation der Werte, die den Strings in den Zeilen zugeordnet sind (die in DF2
sind)
Wie führe ich Operationen in Zeilen von Datenrahmen durch, die Elemente enthalten, die mit einem Wert in einem anderen Datenrahmen in Python verknüpft sind?
Teil 2 hat mich seit einiger Zeit verwirrt. Ich habe an verschiedene Dinge gedacht, aber ich kann mir überhaupt keine Vorstellung von einem Algorithmus machen. Ich kann die Zeichenfolgen in DF
und ihre Werte in DF2
nicht verknüpfen. Bitte helfen Sie!
List1=['Apple','Orange','Banana','Pineapple','Pear','Tomato','Potato']
Sample DF
EQ1 EQ2 EQ3
0 Apple Orange NaN
1 Banana Potato NaN
2 Pear Tomato Pineapple
3 Apple Tomato Pear
4 Tomato Potato Banana
DF2
Name Value
Apple 3.21
Orange 4.32
Banana 5.22
Pineapple 0.01
Pear 4.89
Tomato 7.55
Potato 6.49
für Teile dabei 2: Zum Beispiel, wenn ich die Zeilen mit dem Elemente Banana
, die erste Zeile auszuwählen ist, auf die zuzugreifen Banana Potato NaN
. Jetzt ist Banana
mit 5.22
verknüpft und Potato
ist mit 6.49
in DF2
verbunden. Ich möchte den Wert der ausgewählten Zeichenfolge (in diesem Fall Banana
) vorübergehend auf 1 ändern, und dann möchte ich, dass sie multipliziert werden. (1 * 6,49 in diesem Fall). Natürlich sollte NaN
nicht in diesem enthalten sein. Auch die Anzahl der Spalten von DF
(die Länge der Zeilen) sind nicht immer 3 (wie gezeigt). Es ist eine Variable. Da ich eine Schleife verwende, sollte diese Produktberechnung für alle Elemente von List1
durchgeführt werden. Es wäre toll, wenn mir jemand mit Part2 helfen könnte.
Gewünschter Ausgang für Banana
nur.
List_output=[6.49, 48.9995]
ERKLÄRUNG DES AUSGANGS: Die Banane ist nur in 2 Reihen vorhanden. Daher gibt es nur zwei Werte in der Liste Ausgabe. Die erste ist 6,49, da diese Zeile nur zwei nicht NaN
Werte hat und einer davon der ausgewählte Wert Banana
ist. Daher wird der mit Banana
verknüpfte Wert in 1 vorübergehend geändert und der Rest der Werte werden so beibehalten, wie sie sind. Dies muss für alle Werte in List1
durchgeführt werden. Hoffe, ich machte es klar
Können Sie die gewünschte Ausgabe des Eingangs hinzufügen? 'Serie'? – jezrael
Ich habe es gerade bearbeitet, um eine teilweise gewünschte Ausgabe in der Frage – controlfreak