我有一个特殊字符列表。例如
BAD_CHARS = ['.', '&', '\(', '\)', ';', '-']
我希望能够从pandas数据框的列中删除所有包含这些特殊字符的行。目前我正在执行以下操作:
df = '''
words frequency
& 11
CONDUCTED 3
(E.G., 5
EXPERIMENT 6
(VS. 5
(WARD 3
- 14
2006; 3
3D 5
ABLE 5
ABSTRACT 3
ACCOMPANIED 5
ACTIVITY 11
AD 5
ADULTS 6
'''
for char in BAD_CHARS:
df = df[~df['word'].str.contains(char)]
# Expected Result
words frequency
CONDUCTED 3
EXPERIMENT 6
3D 5
ABLE 5
ABSTRACT 3
ACCOMPANIED 5
ACTIVITY 11
AD 5
ADULTS 6
首先它不工作,其次速度不够快。那么我该如何以更快的方式实现呢?谢谢。
BAD_CHARS = ['.', '&', '(', ')', ';', '-']
。接下来,您可以使用字符类或使用re.escape
。像这样:df[~df['words'].str.contains("[{}]".format(''.join(BAD_CHARS)))]
。 - cs95