我想从整个python pandas数据框中删除美元符号。它与这篇文章类似:
但是,我正在寻找删除无效的美元符号。我相信这是因为正则表达式认为美元符号是字符串的结尾,但我不知道该怎么做。这是我到目前为止创建的内容:
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)
所以我不确定如何更换美元符号。
答案 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)