【问题标题】:replacing quotes, commas, apostrophes w/ regex - python/pandas用正则表达式替换引号、逗号、撇号 - python/pandas
【发布时间】:2017-01-05 23:56:32
【问题描述】:

我有一列包含地址,有时我想删除这些字符 => ' - " - ,(撇号、双引号、逗号)

我想一次性用空格替换这些字符。我正在使用 pandas,这是我目前用来替换其中一个的代码。

test['Address 1'].map(lambda x: x.replace(',', ''))

有没有办法修改这些代码,以便我可以一次性替换这些字符?对不起,我是菜鸟,但我想了解更多关于熊猫和正则表达式的信息。

您的帮助将不胜感激!

【问题讨论】:

  • 试试这个:test['Address 1'].str.replace(r'[\'\",]*', '')
  • 我不熟悉lambda,它的目的是什么?是因为map方法吗?还有,我好像不需要map方法,直接str.replace,你什么时候用map?

标签: python string pandas replace dataframe


【解决方案1】:

你可以使用str.replace:

test['Address 1'] = test['Address 1'].str.replace(r"[\"\',]", '')

示例:

import pandas as pd

test = pd.DataFrame({'Address 1': ["'aaa",'sa,ss"']})
print (test)
  Address 1
0      'aaa
1    sa,ss"

test['Address 1'] = test['Address 1'].str.replace(r"[\"\',]", '')
print (test)
  Address 1
0       aaa
1      sass

【讨论】:

    【解决方案2】:

    这是熊猫解决方案: 要将其应用于整个数据框使用,df.replace。不要忘记撇号的 \ 字符。 示例:

    import pandas as pd
    df = #some dataframe
    df.replace('\'','', regex=True, inplace=True) 
    

    【讨论】:

    • 嘿,我想知道为什么这里需要反斜杠,我用谷歌搜索了一下,但找不到很好的解释,你有链接或类似的东西吗?
    • 你需要一个 ''\" 的原因是你不能在命令中使用某些字符,比如:\、' 或 " ,所以你必须在这些字符之前使用一个 "\"
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-17
    • 2016-11-13
    • 1970-01-01
    • 1970-01-01
    • 2015-10-05
    • 2021-11-10
    • 2016-01-29
    相关资源
    最近更新 更多