我需要从整个数据框中找到特殊字符。 在下面的数据框中,某些列包含特殊字符,如何找到哪些列包含特殊字符? 如果每列包含特殊字符,则想要显示文本。 原文由 Learnings 发布,翻译遵循 CC BY-SA 4.0 许可协议
例如,您可以设置有效字符的字母表 import string alphabet = string.ascii_letters+string.punctuation 哪个是 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~' 只需使用 df.col.str.strip(alphabet).astype(bool).any() 例如, df = pd.DataFrame({'col1':['abc', 'hello?'], 'col2': ['ÃÉG', 'Ç']}) col1 col2 0 abc ÃÉG 1 hello? Ç 然后,使用上面的字母表, df.col1.str.strip(alphabet).astype(bool).any() False df.col2.str.strip(alphabet).astype(bool).any() True 声明 特殊字符 可能非常棘手,因为它取决于您的解释。例如,您 可能会 或 可能不会 将 # 视为特殊字符。此外,某些语言(例如葡萄牙语)可能有 ã 和 é 之类的字符,但其他语言(例如英语)则没有。 原文由 rafaelc 发布,翻译遵循 CC BY-SA 4.0 许可协议
要从数据框列中删除不需要的字符,请使用正则表达式: def strip_character(dataCol): r = re.compile(r'[^a-zA-Z !@#$%&*_+-=|\:";<>,./()[\]{}\']') return r.sub('', dataCol) df[resultCol] = df[dataCol].apply(strip_character) 原文由 Plinus 发布,翻译遵循 CC BY-SA 4.0 许可协议
例如,您可以设置有效字符的字母表
哪个是
只需使用
例如,
然后,使用上面的字母表,
声明 特殊字符 可能非常棘手,因为它取决于您的解释。例如,您 可能会 或 可能不会 将
#
视为特殊字符。此外,某些语言(例如葡萄牙语)可能有ã
和é
之类的字符,但其他语言(例如英语)则没有。