Pandas Lambda-Funktion mit Nan-Unterstützung

Ich bin versucht zu schreiben, eine lambda-Funktion in der Pandas, der prüft, um zu sehen, ob Col1 ist ein Nan und wenn ja, nutzt eine andere Spalte Daten. Ich habe Probleme bei der code (unten) zu kompilieren/ausführen korrekt.

import pandas as pd
import numpy as np
df=pd.DataFrame({ 'Col1' : [1,2,3,np.NaN], 'Col2': [7, 8, 9, 10]})  
df2=df.apply(lambda x: x['Col2'] if x['Col1'].isnull() else x['Col1'], axis=1)

Hat jemand eine gute Idee hat, wie man eine Lösung wie dies mit einer lambda-Funktion oder habe ich überschritten die Fähigkeiten der lambda? Wenn nicht, haben Sie eine andere Lösung? Danke.

  • Dein Beispiel hat nur eine Spalte. Sie können nicht zeichnen, aus Col2 wenn es nicht ein Col2 im dataset; weitere, im Allgemeinen, Sie können nicht "andere Spalte Daten", wenn es keine anderen Spalte.
  • Mögliche Duplikate von Pandas - FillNa mit anderen Spalte
  • Sich zu entschuldigen. Ich hätte eine willkürliche 'Col2'. Ich werde das testen und kommen zurück.
  • Dies scheint nicht zu funktionieren auf meinem großen DataFrame, aber funktioniert in einem Beispiel. Dies könnte sein, weil in meinem eigentlichen Daten gesetzt, hat einen anderen Datentyp verwenden, so fillna wird nicht funktionieren, richtig? Beide Col1 und Col2 in meinem aktuellen set sind dtype('O'), so sollte es kein problem sein.
Schreibe einen Kommentar