Python 删除熊猫中具有特殊字符的所有行
我有一个数据框,其中一列Python 删除熊猫中具有特殊字符的所有行,python,pandas,encoding,Python,Pandas,Encoding,我有一个数据框,其中一列EPI_ID中有特殊字符(如正方形)。我想删除包含此特殊字符的所有行。这不是标准字符,我在数据帧中没有发现类似的问题,主要是字符串。然而,我很难识别这些列。有什么建议吗 df 我的尝试: df[~df['EPI_ID'].apply(lambda x: x.encode('ascii') == True)] 我的结果每行都是假的 预期产出: EPI_ID stuff 2342F randoM_words FER43 predictive_words
EPI_ID
中有特殊字符(如正方形)。我想删除包含此特殊字符的所有行。这不是标准字符,我在数据帧中没有发现类似的问题,主要是字符串。然而,我很难识别这些列。有什么建议吗
df
我的尝试:
df[~df['EPI_ID'].apply(lambda x: x.encode('ascii') == True)]
我的结果每行都是假的
预期产出:
EPI_ID stuff
2342F randoM_words
FER43 predictive_words
编辑:正方形不会出现在模拟df中。但这就是它的本来面目假设您的
数据帧
如下所示:
>>> df = pd.DataFrame({'EPI_ID': ['2343F', 'FER43', 'DF' + u'\u25A1' + '123', 'PQRX74'], 'STUFF': ['abc', 'def', 'ghi', 'jkl']})
>>> df
EPI_ID STUFF
0 2343F abc
1 FER43 def
2 DF□123 ghi
3 PQRX74 jkl
您可以使用,它处理正则表达式:
df.loc[df['EPI_ID'].str.contains(r'[^\x00-\x7F]+') == False]
EPI_ID STUFF
0 2343F abc
1 FER43 def
3 PQRX74 jkl
Regex提供了这样的答案:示例没有正方形,也请发布预期的输出。谢谢你不允许我显示“正方形”…这是什么ASCII码?这是一个unicode字符,我理解为,在问题中添加了一个链接来显示字符。
df.loc[df['EPI_ID'].str.contains(r'[^\x00-\x7F]+') == False]
EPI_ID STUFF
0 2343F abc
1 FER43 def
3 PQRX74 jkl