Проверьте, имеет ли ячейка нулевые значения, используя регулярное выражение

#python-3.x #regex

#python-3.x #регулярное выражение

Вопрос:

Цель состоит в том, чтобы отфильтровать данные, которые соответствуют регулярному выражению в столбце B, в то время как столбец A равен нулю.

 df = pd.read_csv('DATA.csv',sep=',',error_bad_lines=False)
fd = df[(df['B'].str.match('.*color:*') | 
df['B'].str.match('colorful:*')) amp; df.A.str.match('^s*$')]
  

Результат, полученный с помощью этого, соответствует всем экземплярам слова ‘color’ в столбце B вместо точного соответствия ‘color:’ или ‘colorful:’. Кроме того, этот код работает со строками столбца B, где соответствующие значения в столбце A не равны нулю, вместо того, чтобы работать только со строками, где значения столбца A равны нулю.

Комментарии:

1. Что вы подразумеваете под нулевым значением?

2. В этой ячейке нет значений. Оно пустое

3. Как вам удается получать пустые ячейки фрейма данных из read_csv ?

4. DATA.csv содержит два столбца A и B. В столбце A некоторые ячейки пусты, как в ‘NaN’. Необходимо идентифицировать эти пустые ячейки с помощью регулярного выражения

5. пытался использовать str.match(‘^ s * $’) для сопоставления этих пустых ячеек .. но это не соответствует

Ответ №1:

есть 2 способа: первый — использовать метод .isnull():

 df.A.isnull()
  

вторым будет:

 df.A.fillna('').str.contains('^$')
  

однако подход regex (второй) не является оптимальным

Комментарии:

1. df.A.isnull()-> это опустило нулевые значения.. большое спасибо