#python #regex #dataframe
Вопрос:
Итак, у меня есть usa_sub_states
фрейм данных с именем столбца 'state'
.
В столбце state
есть 5 состояний с неалфавитными строками.
Massachusetts[C]
Pennsylvania[C]
Rhode Island[D]
Virginia[C]
Hawai'i
теперь мне было интересно, есть ли способ заменить все специальные символы пустой строкой, чтобы все они отображались как обычное название штата.
usa_sub_states.state.replace(to_replace=r'[W]', value='', regex=True, inplace=True)
но по какой-то причине это удалило все содержимое столбца и превратило его в пустую строку.
Комментарии:
1. Попробуйте
usa_sub_states['state'] = usa_sub_states['state'].str.replace(r"[[^][]*]|W", "", regex=True)
, посмотрите демонстрацию регулярных выражений.2. ЭТО СРАБОТАЛО! TYTYTYTY
3. хотя у меня просто есть вопрос.
4. как бы вы написали синтаксис с форматом
5. usa_states_sub.state.replace(to_replace=___, значение=__, регулярное выражение=___, место=___)
Ответ №1:
Вы можете использовать
usa_sub_states.state.replace(to_replace=r'[[^][]*]|W', value='', regex=True, inplace=True)
Смотрите демонстрацию регулярных выражений. Подробные сведения:
[[^][]*]
—[
, тогда любые нулевые или более символы, отличные от[
и]
|
— илиW
— любой символ без слов.
Комментарии:
1. У меня только один последний вопрос. Поэтому по какой-то причине все состояния с пробелом теперь являются одним словом без пробела. как я могу этого избежать?
2. @GirthyLampost Исключить пробелы?
r'[[^][]*]|[^ws]|_'
3. Я все еще получаю ВестВиргинию
4. @GirthyLampost, тогда это ваш ввод. Или есть какой-то другой код, который удаляет пробелы.
5. ладно, я предполагаю, что это как-то связано с самим блокнотом jupyter, но то, что я сделал, это проверил ячейки одну за другой, начиная с нескольких ячеек, когда в состояниях были специальные символы, а что нет, а затем это сработало.