过滤数据框中的特殊字符
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 进行测试。
我有以下名为 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 进行测试。