Mam pytanie dla początkujących. Mam ramkę danych I powtarzam i chcę sprawdzić, czy wartość w wierszu kolumna2 jest NaN
lub nie, aby wykonać akcję na tej wartości, jeśli nie jest NaN
. Moja DataFrame wygląda następująco:Jak iterować wiersze ramki danych i sprawdzić, czy wartość w wierszu kolumny jest NaN
df:
Column1 Column2
0 a hey
1 b NaN
2 c up
Próbuję teraz jest:
for item, frame in df['Column2'].iteritems():
if frame.notnull() == True:
print 'frame'
pupę, że myśl jest taka, że iteracyjne nad wierszy w kolumnie 2 i print
ramy dla każdego wiersza, który ma wartość (która jest ciągiem znaków). Co mam jednak jest to:
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'
Kiedy tylko uruchomić pierwszą linię mojego kodu, otrzymuję
0
hey
1
nan
2
up
co sugeruje, że pływa w wyjściu z pierwszej linii są przyczyną błąd. Czy ktoś może mi powiedzieć, jak mogę osiągnąć to, czego chcę?
Działa to w ten sposób, że drukowane są tylko ramki (wiersze), ale wartości 'nan' są nadal obecne. Ale dlaczego wartości klatek są wyświetlane, gdy powinny być ciągami znaków? –
Pandy reprezentują wszystkie brakujące wartości jako liczba zmiennoprzecinkowa 'nan' –
Możesz użyć' pd.notnull() ', aby sprawdzić, czy wartość nie ma wartości" NaN ". Jeśli chcesz odfiltrować puste wartości ciągów/Brak, możesz także zrobić - 'if frame i pd.notnull (frame):'. –