Ответ 1
Назовите его следующим образом:
yes_records_sample['name'].isnull()
У меня есть столбец pandas, который я получил из запроса базы данных с ячейками blanck. Пустые ячейки становятся "Нет", и я хочу проверить, нет ли каждой из строк:
In [325]: yes_records_sample['name']
Out[325]:
41055 John J Murphy Professional Building
25260 None
41757 Armand Bayou Nature Center
31397 None
33104 Hubert Humphrey Building
16891 Williams Hall
29618 None
3770 Covenant House
39618 None
1342 Bhathal Student Services Building
20506 None
Мое понимание в документации заключается в том, что я могу проверить, равна ли каждая строка нулевым с помощью команды isnull()
http://pandas.pydata.org/pandas-docs/dev/missing_data.html#values-considered-missing
Эта функция, однако, не работает для меня:
In [332]: isnull(yes_records_sample['name'])
Я получаю следующую ошибку:
NameError Traceback (most recent call last)
<ipython-input-332-55873906e7e6> in <module>()
----> 1 isnull(yes_records_sample['name'])
NameError: name 'isnull' is not defined
Я также видел, что кто-то просто заменил строки "Нет", но ни один из этих вариантов этого подхода не работал у меня: Переименовать "Нет" значение в Pandas
yes_records_sample['name'].replace('None', "--no value--")
yes_records_sample['name'].replace(None, "--no value--")
В конечном итоге я смог использовать функцию fillna
и заполнить каждую из этих строк пустой строкой yes_records_sample.fillna('')
как обходной путь, а затем я мог бы проверить yes_records_sample['name']==''
. Но я глубоко смущен тем, как работает "Нет" и что это значит. Есть ли способ легко проверить, не является ли ячейка в фрейме данных "Нет"?
Назовите его следующим образом:
yes_records_sample['name'].isnull()
Я не мог найти встроенный, который делает именно это, поэтому я делаю это вручную. В случае Серии код следующий:
import numpy as np
series = yes_records_sample['name']
n = np.empty_like(series)
n[...] = None
nones = series.values == n
В случае DataFrames код очень похож:
import numpy as np
df = yes_records_sample
n = np.empty_like(df)
n[...] = None
nones = df == n
Моя проблема с .isnull() заключается в том, что она не различает NaN и None. Это может быть или не быть проблемой в вашем приложении.