在字符串列表中查找一个字符

5

Python的in不能用于整列:

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

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

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

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

2
尝试:dfTrain['name'].str.contains('"') - MaxU - stand with Ukraine
为什么费力地转义,当你可以使用单引号呢? - AK47
dfTrain['name'].str.contains('"') 可以工作!我怎样才能只得到一个值 "True"?而不是一个序列... - Yari
3个回答

4

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
我可以帮您进行翻译,以下是内容:

有几种方法可以实现这个目标:

1)你可以做的一件事是

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

如果df中任何一个名称包含“。”,则返回True

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

这是因为,我正在查找所有包含"的列。 如果没有包含"的列,则返回的数据框将为空。 如果返回的数据框为空(True),则意味着没有列包含",而你希望输出'False'(因此需要使用“not”语句)。


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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接