Zusammenführen und Subtraktion DataFrame Spalten in pandas?
Habe ich ein pandas DataFrame, so etwas wie:
col1 col2 col3 col5
NaN 1 2 8
2 NaN 4 8
4 NaN 4 8
Möchte ich zwei Dinge tun:
1) Verschmelzen, Spalten 1 und 2:
newcol1 col3 col5
1 2 8
2 4 8
4 4 8
Habe ich versucht, mit .concat, aber das sind nur verkettet die Zeilen. Scheint nicht, wie kann ich verwenden-standard +
Betreiber mit NaN-Werte.
2) Subtrahieren Spalte 5 von der neuen Spalte 1 und Spalte 3, so Ende ich mit:
newcol1 col3
-7 -6
-6 -4
-4 -4
Versucht, es zu tun auf diese Weise:
dataframe[['newcol1', 'col2']] - dataframe['col5']
und
dataframe[['newcol1', 'col2']].subtract(dataframe['col5'])
aber klappt beides nicht.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Um die neue Spalte, die Sie nutzen könnten
fillna
(odercombine_first
):Dann für die Subtraktion verwenden
sub
und geben Sieaxis=0
da wollen wir betrachten die Zeile die Indizes bei den entsprechenden labels (nicht die Spalte-Indizes als ist die Standardeinstellung):df.col1.combine_first(df.col2)
funktionieren besser?pd.__version__
?fillna
Sache, die einzige mögliche Ursache, die ich denken kann, ist, dass Ihr DataFrame hat doppelte Indizes. Die Subtraktion sollte nicht heben irgendwelche Fehler, wenn Sie abgezogen Spalten in der gleichen DataFrame (...ich habe keine Ahnung, was Los ist...).Hier ist ein Ansatz.
Könnten Sie
newcol1
durchsum(axis=1)
Dann verwenden
df.sub()
aufaxis=0
Können Sie dann drop col1 und col2: