过滤数据框中的特殊字符

filter special characters in a dataframe

我有以下名为 data 的数据框:

    metrics    artists

0    0.21    ['Zhané']
2    0.14    ['Mose Allison']
3    0.87    ['水柳仙']
4    0.25    ['Shel Silverstein']

artists栏目部分记录有特殊字符,我想把有特殊字符的记录再做一个df,即输出如下:

数据:

     metrics    artists

0    0.14    ['Mose Allison']
1    0.25    ['Shel Silverstein']

数据2:

     metrics    artists

0    0.21    ['Zhané']
1    0.14    ['水柳仙']

使用:

 data2=data.artists[data.artists.str.contains("[^a-zA-Z0-9]")]

但是我得到了原始的df,

我也试过:

data2 = []
for x in data['artists']:
    if x is not "[^a-zA-Z0-9 ]":
         data2[x]=data[x]
    print(data2)

但它给了我错误:

KeyError: "['Zhané']"

并与:

if x is "[^ a-zA-Z0-9]"

returns条空记录。

use:

data2=data.artists[data.artists.str.contains("[^a-zA-Z0-9]")]

but I get the original df,

您在“[^a-zA-Z0-9]”中缺少 space,这就是您获得原始 df 的原因。在 Jupyter 笔记本中使用 Python3 进行测试。