2016-12-22 2 views
4

Я пытаюсь выполнить итерацию с помощью фрейма данных, который имеет нулевые значения для столбца = [myCol]. Я могу выполнить итерацию с помощью фрейма dataframe, однако, когда я укажу, я хочу видеть только нулевые значения, я получаю сообщение об ошибке.Итерации через dataframe и выберите нулевые значения

Конечная цель заключается в том, что я хочу, чтобы значение было введено в поля, которые являются нулевыми, поэтому я повторяю, чтобы определить, какие являются первыми.

for index,row in df.iterrows(): 
    if(row['myCol'].isnull()): 
     print('true') 

AttributeError: 'str' object has no attribute 'isnull' 

Я попытался не указав столбца = «None», так что значение, которое я вижу, когда я печатаю итерацию dataframe. Еще не повезло:

for index,row in df.iterrows(): 
    if(row['myCol']=='None'): 
     print('true') 

No returned rows 

Любая помощь очень ценится!

+0

вы имели в виду 'если (строка [ 'Mycol'] не является None):'? в противном случае это будет сравниваться со строкой ''None'', а не с объектом (singleton)' None'. ' –

+0

Ваша конечная цель не ясна. Возможно, вы можете предоставить таблицу ввода и ожидаемую таблицу вывода. Не знаете, что вы пытаетесь заменить нулевым значением, является ли это векторным данным или или другим df col или другим col в одном и том же df? в R, если вы пытаетесь заменить нулевые значения значением из того же самого df. Простым было бы 'df $ myCol <- ifelse (df $ myCol ==" ", df $ FillInColumn, df $ myCol)' – user5249203

ответ

2

Вы можете использовать pd.isnull(), чтобы проверить, если значение равно нулю или нет:

for index, row in df.iterrows(): 
    if(pd.isnull(row['myCol'])): 
     print('true') 

Но кажется, что вам нужно df.fillna(myValue) где myValue это значение, которое вы хотите, чтобы заставить в полях, NULL. А также для проверки полей NULL в кадре данных вы можете вызывать df.myCol.isnull() вместо того, чтобы перебирать строки и проверять индивидуально.


Если столбцы типа строки, вы также можете проверить, если это пустая строка:

for index, row in df.iterrows(): 
    if(row['myCol'] == ""): 
     print('true') 
+0

это сработало спасибо! – Ariel

Смежные вопросы