python - 过滤掉包含非字母数字字符的行

标签 python pandas dataframe

我正在尝试从现有的 DataFrame 中获取一个 DataFrame,该 DataFrame 仅包含特定列(其值为字符串)中的值不包含特定字符的行。

即如果我们不想要的字符是 '('

原始数据框:

   some_col my_column
0         1      some
1         2      word
2         3    hello(

新数据框:

   some_col my_column
0         1      some
1         2      word

我试过 df.loc['(' not in df['my_column']],但这不起作用,因为 df['my_column'] 是一个系列对象。

我也尝试过:df.loc[not df.my_column.str.contains('(')],它也不起作用。

最佳答案

你正在寻找 str.isalpha:

df[df.my_column.str.isalpha()]

   some_col my_column
0         1      some
1         2      word

类似的方法是str.isalnum,如果你想保留字母和数字。

如果你想处理字母和空白字符,使用

df[~df.my_column.str.contains(r'[^\w\s]')]

   some_col my_column
0         1      some
1         2      word

最后,如果您想要删除整个标点符号,我在这里写了一个问答,这可能是一个有用的读物​​:Fast punctuation removal with pandas

关于python - 过滤掉包含非字母数字字符的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50595548/

相关文章:

python - 无法使用 file.write 将数据帧写入 python 中的 .csv 文件

python - 使用字典计算 python 数据框中的词频

python - Windows 7中的django路径问题

python - PyQt 相当于 tkinter 的 Canvas 是什么?

python - 张量板 - tensorflow.python.framework.errors_impl.NotFoundError :

python - 如何计算到达下一个值之前还剩下多少行?

python - 获取条件下唯一值的计数

python - OpenShift 在线平台上的 ImportError : libXrender. so.1

python - df.append() 没有 append 到 DataFrame

python - 从一组列中检索第一个非 NA 值