【问题标题】:How to remove multiple patterns of special characters in Python Regex Dataframe如何在 Python Regex Dataframe 中删除多种特殊字符模式
【发布时间】:2021-09-03 12:10:39
【问题描述】:

所以我有一个名为 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) 

但由于某种原因,这删除了该列的所有内容并使其成为空字符串。

【问题讨论】:

  • 试试usa_sub_states['state'] = usa_sub_states['state'].str.replace(r"\[[^][]*]|\W", "", regex=True),见regex demo
  • 成功了! TYTYTYTY
  • 我只是有一个问题。
  • 你将如何用格式编写语法
  • usa_states_sub.state.replace(to_replace=___, value=__, regex=___, inplace=___)

标签: python regex dataframe


【解决方案1】:

你可以使用

usa_sub_states.state.replace(to_replace=r'\[[^][]*]|\W', value='', regex=True, inplace=True)

请参阅regex demo详情

  • \[[^][]*] - [,然后是除 [] 之外的任何零个或多个字符
  • | - 或
  • \W - 任何非单词字符。

【讨论】:

  • 我只有最后一个问题。所以由于某种原因,所有带空格的状态现在都是一个没有空格的单词。我该如何避免呢?
  • @GirthyLampost 排除空格? r'\[[^][]*]|[^\w\s]|_'
  • 我仍然得到西弗吉尼亚
  • @GirthyLampost 那么这是您的输入。或者,还有一些其他代码可以删除空格。
  • 好吧,我想这与 jupyter notebook 本身有关,但我所做的是当状态有特殊字符时从几个单元格开始逐个运行单元格,然后它没有工作。
猜你喜欢
  • 2021-11-27
  • 1970-01-01
  • 1970-01-01
  • 2021-12-15
  • 1970-01-01
  • 2015-11-11
  • 2011-11-13
  • 2015-08-22
  • 2019-06-09
相关资源
最近更新 更多