Я немного поискал и не могу понять, как отфильтровать фрейм данных df["col"].str.contains(word)
, однако мне интересно, есть ли способ сделать обратное: отфильтровать фрейм данных с помощью этого набора. например: эффект !(df["col"].str.contains(word))
.
Можно ли это сделать с помощью DataFrame
метода?
re.complies
и сказал себе, что вернусь к этому позже. Похоже, я переусердствовал с поиском, и все именно так, как вы говоритеdf[~df.col.str.contains(word)]
возвращает копию исходного фрейма данных с исключенными строками, соответствующими слову.У меня тоже были проблемы с символом not (~), поэтому вот другой способ из другого потока StackOverflow :
источник
df[df["col1"].str.contains('this'|'that')==False and df["col2"].str.contains('foo'|'bar')==True]
? Спасибо!df = df[~df["col"].str.contains('\|')]
Вы можете использовать Apply и Lambda для выбора строк, в которых столбец содержит что-либо в списке. Для вашего сценария:
источник
Мне пришлось избавиться от значений NULL перед использованием команды, рекомендованной Энди выше. Пример:
Теперь выполняем команду:
Я получаю следующую ошибку:
Я избавился от значений NULL сначала с помощью dropna () или fillna () и без проблем повторил команду.
источник
~df["second"].astype(str).str.contains(word)
для принудительного преобразования вstr
. См. Stackoverflow.com/questions/43568760/…Надеюсь ответы уже опубликованы
Я добавляю фреймворк, чтобы найти несколько слов и исключить их из dataFrame .
Здесь
'word1','word2','word3','word4'
= список шаблонов для поискаdf
= DataFramecolumn_a
= Имя столбца из DataFrame dfисточник
В дополнение к ответу nanselm2 вы можете использовать
0
вместоFalse
:источник
NaN