【发布时间】:2019-08-06 14:13:08
【问题描述】:
我正在寻找一种方法来检查一个字符串是否可以在另一个字符串中找到。 str.contains 只接受一个固定的字符串模式作为参数,我宁愿在两个字符串列之间进行元素比较。
import pandas as pd
df = pd.DataFrame({'long': ['sometext', 'someothertext', 'evenmoretext'],
'short': ['some', 'other', 'stuff']})
# This fails:
df['short_in_long'] = df['long'].str.contains(df['short'])
预期输出:
[True, True, False]
【问题讨论】:
-
您接受的答案几乎是另一个人的抄本。不确定应该鼓励这种事情。仅供参考。
-
我接受了另一个答案只是因为你的(优秀的)在我的实际情况下不起作用。所以另一个似乎更笼统。
-
不确定您指的是哪个版本的答案。另一个答案也会因 TypeError 而失败。就像我回复你的其他评论一样,
str.contains的初始编辑是错误的,因为检查是 not 元素明智的。例如,使用 contains 解决方案,您将在所有行中搜索“some”,而它应该只检查第一行。一般,但完全错误。 -
您不必接受我的回答,但您应该检查/验证您决定接受的解决方案的正确性,一般与否……仅此而已。祝你有美好的一天:)
-
我确实检查了它们,我接受了最终版本,而不是最初的(错误的)版本。你也有美好的一天:)