Ich habe eine Anfängerfrage. Ich habe einen Datenframe, über den ich weitergebe, und ich möchte überprüfen, ob ein Wert in einer column2-Zeile NaN
ist oder nicht, um eine Aktion für diesen Wert auszuführen, wenn es nicht NaN
ist. Meine Datenrahmen sieht wie folgt aus:Wie man durch Zeilen eines Datenrahmens iteriert und überprüft, ob der Wert in einer Spaltenzeile NaN ist
df:
Column1 Column2
0 a hey
1 b NaN
2 c up
Was ich versuche, ist gerade jetzt:
for item, frame in df['Column2'].iteritems():
if frame.notnull() == True:
print 'frame'
Der Gedanke dahinter ist, dass ich über die Zeilen in Spalte 2 und print
Rahmen für jede Zeile durchlaufen, das hat ein Wert (der eine Zeichenfolge ist). Was ich aber bekommen, ist dies:
AttributeError Traceback (most recent call last)
<ipython-input-80-8b871a452417> in <module>()
1 for item, frame in df['Column2'].iteritems():
----> 2 if frame.notnull() == True:
3 print 'frame'
AttributeError: 'float' object has no attribute 'notnull'
Als ich die erste Zeile meines Codes nur dann laufen, ich
0
hey
1
nan
2
up
erhalten, die die Schwimmer in der Ausgabe der ersten Zeile lässt vermuten, dass die Ursache für der Fehler. Kann mir jemand sagen, wie ich erreichen kann, was ich will?
Es funktioniert in Begriffen, dass nur die Rahmen (Reihen) gedruckt werden, aber die 'nan' Werte sind noch vorhanden. Aber warum schweben die Rahmenwerte, wenn sie Zeichenketten sein sollten? –
Pandas stellt alle fehlenden Werte als Gleitkommazahl 'nan' dar. –
Sie können' pd.notnull() 'verwenden, um zu überprüfen, ob der Wert nicht' NaN' ist. Wenn Sie auch leere Strings/None Werte herausfiltern wollen, können Sie auch - 'if frame und pd.notnull (frame):'. –