检查字符串列表中的字符

时间:2016-04-21 16:54:35

标签: python pandas

Python in并不适用于整个列:

> dfTrain['name'][22]
  'McGowan, Miss. Anna "Annie"'

> "\"" in dfTrain['name'][22]
  True

> "\"" in dfTrain['name']
False

如何检查字符串的列表中是否存在字符?

3 个答案:

答案 0 :(得分:3)

" \""在dfTrain ['名称'] [22]是' McGowan,小姐.Anna" Annie"'其中包含" \"

虽然dfTrain [' name']是一个列表而你却没有" \"作为列表中的元素

与您的类似示例:

>>> nested_list_example = ["abhishek","ralesh","wr'"]
>>> "wr'" in nested_list_example
True
>>> "'" in nested_list_example
False
>>> "'" in nested_list_example[2]
True

答案 1 :(得分:1)

有几种方法可以做到这一点:

1)你可以做的一件事是

"\"" in dfTrain['name'].to_string()

如果df中的任何名称包含",则返回True

2)另一种方式可能是not dfTrain[dfTrain['name'].str.contains('"')].empty

这是因为,我找到了包含"的所有列。 如果没有包含"的列,则表示返回的数据帧将为空。 如果返回的数据帧为空(True),则所有列都不包含",您希望输出“False”#39; (因此' not'陈述')

答案 2 :(得分:0)

您可以将每行中的join()个元素合并为一个字符串并使用contains()来检查它是否包含"

In [11]: df
Out[11]:
                                      name
0                           [test1, test2]
1                           [another test]
2                      [yet, another test]
3  [McGowan, Miss. Anna "Annie", aaa, bbb]

In [12]: df['name'].str.join('').str.contains('"')
Out[12]:
0    False
1    False
2    False
3     True
Name: name, dtype: bool