从整个 Python Pandas 数据框中删除美元符号

Posted

技术标签:

【中文标题】从整个 Python Pandas 数据框中删除美元符号【英文标题】:Remove Dollar Sign from Entire Python Pandas Dataframe 【发布时间】: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)

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

【问题讨论】:

【参考方案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)

【讨论】:

以上是关于从整个 Python Pandas 数据框中删除美元符号的主要内容,如果未能解决你的问题,请参考以下文章

Python Pandas:如何从包含列表中值的数据框中删除所有列?

如何从 Python Pandas 系列或数据框中的一行中删除省略号,当长行/宽列被截断时显示?

如何从 Pandas 数据框中删除行列表?

从 pandas 数据框中删除句子长度超过特定字长的行

从 pandas 数据框中删除具有空列表的行

从 pandas 数据框中的元组列中删除元素