【问题标题】:Remove Dollar Sign from Entire Python Pandas Dataframe从整个 Python Pandas 数据框中删除美元符号
【发布时间】:2017-08-23 02:51:10
【问题描述】:

我希望从整个 python pandas 数据框中删除美元符号。和这篇文章类似:

Remove Entire Character

但是,我希望删除不起作用的美元符号。我相信这是因为正则表达式将美元符号视为字符串的结尾,但我不确定该怎么做。这是我到目前为止创建的内容:

dftest = pd.DataFrame({'A':[1,2,3],
                       'B':[4,5,6],
                       'C':['f;','$d:','sda%;sd$'],
                       'D':['s%','d;','d;p$'],
                       'E':[5,3,6],
                       'F':[7,4,3]})

它给出了输出:

In [155]: dftest
Out[155]:
   A  B         C     D  E  F
0  1  4        f;    s%  5  7
1  2  5       $d:    d;  3  4
2  3  6  sda%;sd$  d;p$  6  3

然后我尝试按如下方式删除美元符号:

colstocheck = dftest.columns

dftest[colstocheck] = dftest[colstocheck].replace({'$':''}, regex = True)

这不会删除美元符号,但此代码确实删除了百分号:

dftest[colstocheck] = dftest[colstocheck].replace({'%':''}, regex = True)

所以我不确定如何替换美元符号。

【问题讨论】:

    标签: python regex pandas dataframe replace


    【解决方案1】:

    您需要通过\ 转义$

    dftest[colstocheck] = dftest[colstocheck].replace({'\$':''}, regex = True)
    print (dftest)
       A  B        C    D  E  F
    0  1  4       f;   s%  5  7
    1  2  5       d:   d;  3  4
    2  3  6  sda%;sd  d;p  6  3
    

    【讨论】:

    • 啊,我在玩这个,但无法让它工作——我不熟悉正则表达式。谢谢!
    • 注意:您也可以在dict 中指定多个字符:{'\$': '', ',': ''} 以替换美元符号和逗号,例如。处理垃圾 Excel 导出时超级方便:)
    【解决方案2】:

    添加到 jezrael 的答案中。在反斜杠字符串前添加 'r' 以避免 pep8 无效转义序列警告。

    dftest[colstocheck] = dftest[colstocheck].replace({r'\$':''}, regex = True)
    

    【讨论】:

      猜你喜欢
      • 2016-11-25
      • 1970-01-01
      • 1970-01-01
      • 2014-12-30
      • 2016-02-20
      • 2021-05-05
      • 1970-01-01
      • 1970-01-01
      • 2022-11-16
      相关资源
      最近更新 更多