【问题标题】:How to remove special character for a single string with commas in it? [duplicate]如何删除带有逗号的单个字符串的特殊字符? [复制]
【发布时间】:2021-09-13 15:37:28
【问题描述】:

我需要为带有逗号的单个字符串删除一个特殊字符集(例如 (x))。

这是一个目标示例:

col1 col2
Brash (7), Confident (7), Street-Smart (6), Calm/Peaceful(5) Brash, Confident, Street-Smart, Calm/Peaceful

我尝试过使用以下代码:

df['col'] = df['col'].fillna('').astype(str).str.replace(r'[^A-Za-z ]', '', regex=True)
df['col'] = df['col'].str.replace(r" \(.*\)","")

但我只能保留第一个元素或删除所有特殊字符,我只需要删除模式(x)

【问题讨论】:

  • 您的代码 df['col'] = df['col2'].str.replace(r" \(.*\)","") 对我来说很好用。
  • “行的元素”是什么意思? 单个单元格中是否有Brash (7), Confident (7), Street-Smart (6), Calm/Peaceful(5)?那是一个带有逗号的字符串,还是一个字符串列表,还是什么?
  • 使用r" \(.*?\)"作为正则表达式
  • @KarlKnechtel,是一个带有逗号的字符串。对不起,可疑的表达
  • 啊哈。那么问题很简单,例如\(.*\) 匹配 (7), Confident (7), Street-Smart (6), Calm/Peaceful(5) - 尽可能满足条件。有关详细信息,请参阅链接的副本。您接受的答案通过仅接受括号内的数字来解决问题。

标签: python pandas python-re


【解决方案1】:
df['col'].str.replace(r'\((\d+).*?\)', '', regex=True)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-25
    • 1970-01-01
    • 2012-05-30
    • 2020-11-19
    • 1970-01-01
    • 2020-02-29
    • 1970-01-01
    • 2018-01-19
    相关资源
    最近更新 更多