过滤数据框中的特殊字符

时间:2021-05-25 03:02:52

标签: python pandas dataframe filter special-characters

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

    metrics    artists

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

列“艺术家”的一些记录有特殊字符,我想用有特殊字符的记录再做一个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]"

返回空记录。

1 个答案:

答案 0 :(得分:1)

<块引用>

使用:

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

但我得到了原来的df,

您在“[^a-zA-Z0-9]”中缺少一个空格,这就是您获得原始 df 的原因。在 Jupyter notebook 中使用 Python3 进行测试。