Python的in
不能用于整列:
> dfTrain['name'][22]
'McGowan, Miss. Anna "Annie"'
> "\"" in dfTrain['name'][22]
True
> "\"" in dfTrain['name']
False
如何检查一个字符是否存在于一组字符串的列表中?
dfTrain['name'][22]中的"\"是'McGowan, Miss. 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)你可以做的一件事是
"\"" in dfTrain['name'].to_string()
如果df中任何一个名称包含“。”,则返回True
。
2)另一种方法是not dfTrain[dfTrain ['name'].str.contains('"')].empty
这是因为,我正在查找所有包含"
的列。
如果没有包含"
的列,则返回的数据框将为空。
如果返回的数据框为空(True),则意味着没有列包含"
,而你希望输出'False'(因此需要使用“not”语句)。
您可以将每行中的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
dfTrain['name'].str.contains('"')
- MaxU - stand with Ukraine