从整个Python Pandas Dataframe中移除美元符号

时间:2017-03-29 14:31:44

标签: python regex pandas dataframe replace

我想从整个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)

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

2 个答案:

答案 0 :(得分:7)

您需要$转义\

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

答案 1 :(得分:0)

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

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