Kürzlich mit zwei Serien in Pandas eine Arbeit, die ich mache:Pandas: ändern Sie eine Serie durch einen zweiten mit dem gleichen Index mit
- Die erste Serie enthält rein numerische Daten
- Die zweite Serie enthält kategorische Daten: "Plus", "Minus" und NaN.
Beispieldaten:
first_series = pandas.Series([0.000003, 0.004991, 0.004991])
second_series = pandas.Series(["Plus", "Minus", np.nan], dtype="object",
index=first_series.index)
(in dem realen Szenario wird die zweite Serie programmatisch mit dem gleichen Index wie die ersten gebaut, aber es ist hier nur ein vereinfachtes Beispiel)
ich zuerst eine Manipulation zu tun:
first_series = np.log2(1/first_series)
Dann brauche ich würde das Vorzeichen invertieren (Multiplikation mit -1) des entsprechenden „M inus "Einträge, und wenden Sie sich an NaN
diejenigen, die in der zweiten Serie sind NaN
.
Der letzte Teil funktioniert OK:
first_series[np.invert(second_series.notnull())] = np.nan
print first_series
0 18.567557
1 7.646459
2 NaN
Name: Example data
Allerdings bin ich irgendwie stecken mit dem früheren Teil. Wie kann ich die Informationen in der zweiten Serie verwenden (da sie identisch indexiert sind), um das Zeichen in der ersten Serie zu wechseln?
Als Referenz nach der Anwendung, first_series sollte wie folgt sein:
0 18.567557
1 -7.646459
2 NaN
Name: Example data
Es ist nicht von Pandas in der aktuellen Kasse funktioniert I‘ m verwenden. Ich werde einen Fehler einreichen. – Einar