如何让 Python 识别我的 DataFrame 单元格中的星号?

How can I make Python recognize an asterisk in a cell of my DataFrame?

所以,我有一个 DataFrame,它在某些单元格中显示星号而不是数字。我想构建一个函数来识别单元格中的星号并将其替换为 0。 这就是我的想法:

def clean(row):
    if 's' in str(row):
        return re.sub(r's', '', str(row))

    elif '*' in str(row):
        return re.sub('*','' , str(row))

    else:
        return row

但很明显,我需要一些表达式来转义“*”并让 Python 将其识别为我要替换的对象。这里函数中感兴趣的部分当然是 "elif" 部分。 预先感谢您的帮助。

您正在搜索反斜杠。

\反斜杠,关闭下一个字符的特殊含义。

import re


def clean(row):
    if 's' in str(row):
        return re.sub(r's', '', str(row))

    elif '*' in str(row):
        return re.sub(r'\*', '', str(row))

    else:
        return row


row = "ij*efs"
print(row, clean(row))

以防万一,如果你想替换 Dataframe 中的每个星号,你可以使用 df.replace() 方法。

df.replace(to_replace=r'\*', value='', regex=True)