#python #python-3.x #pandas #dataframe
#python #python-3.x #pandas #фрейм данных
Вопрос:
Как узнать, является ли поле не пустым («) и не null в фрейме данных pandas?
Я использую if not value and pd.notna(value):
Это правильно или есть лучший API, который обрабатывает эту логику напрямую?
Ответ №1:
Как насчет изменения пустого значения на NaN, а затем проверки. Кр.
df = pd.DataFrame({"a": [np.nan, 1, ""]})
df = df.replace('', np.nan)
print(df.isnull())
который возвращает:
a
0 True
1 False
2 True
Альтернативой является заполнение NaN на пустой ''
, а затем проверка:
df = pd.DataFrame({"a": [np.nan, 1, ""]})
df = df.fillna('')
print(df=='')
который возвращает:
a
0 True
1 False
2 True
Ответ №2:
Вы можете заменить поля пустыми строками или содержащими только пробелы на np.nan
или None
в вашем фрейме данных, а затем использовать notna
для поиска допустимых значений.
df.replace(r'^s*
Более того, if not value and pd.notna(value)
не работает для пустой строки или поля, содержащего только пробелы:
value = ''
not value and pd.notna(value) # this is True
value = None
not value and pd.notna(value) # this is False
value = np.nan
not value and pd.notna(value) # this is False
Более того,
, np.nan, regex=True, inplace=True)
if not value and pd.notna(value)
не работает для пустой строки или поля, содержащего только пробелы: