Wie kann ich in Pandas die Spalte finden, die den dritten NaN-Wert in jeder Zeile eines DataFrame enthält?Python

Python-Programme
Guest
 Wie kann ich in Pandas die Spalte finden, die den dritten NaN-Wert in jeder Zeile eines DataFrame enthält?

Post by Guest »

Mir wurde ein Problem zur Lösung meiner Aufgabe zugewiesen. Hier ist die Beschreibung meines Problems:
In der Zelle unten haben Sie einen DataFrame df, der aus 10 Spalten mit Gleitkommazahlen besteht. Genau 5 Einträge in jeder Zeile sind NaN-Werte.
Suchen Sie für jede Zeile des DataFrame die Spalte, die den dritten NaN-Wert enthält.
Sie sollten eine Reihe von Spaltenbezeichnungen zurückgeben : e, c, d, h, d

Code: Select all

nan = np.nan

data = [[0.04,  nan,  nan, 0.25,  nan, 0.43, 0.71, 0.51,  nan,  nan],
[ nan,  nan,  nan, 0.04, 0.76,  nan,  nan, 0.67, 0.76, 0.16],
[ nan,  nan, 0.5 ,  nan, 0.31, 0.4 ,  nan,  nan, 0.24, 0.01],
[0.49,  nan,  nan, 0.62, 0.73, 0.26, 0.85,  nan,  nan,  nan],
[ nan,  nan, 0.41,  nan, 0.05,  nan, 0.61,  nan, 0.48, 0.68]]

columns = list('abcdefghij')

df = pd.DataFrame(data, columns=columns)

# write a solution to the question here
Das ist meine Lösung:

Code: Select all

result = df.apply(lambda row: row.isna().idxmax(), axis=1)
print(result)
Mein Code gibt b, a, a, a, b, a zurück, während die gewünschte Ausgabe e, c, d, h, d ist. Meine Lösung gibt den Index des ersten NaN zurück, aber gemäß der Frage möchte ich das dritte NaN in jeder Zeile. Wie kann ich das machen? Oder gibt es eine alternative Lösung, die die gewünschte Ausgabe liefert?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post