我有一个包含两列字符串的pandas数据框。我想识别第一列(s1
)中的字符串出现在第二列(s2
)的字符串中的所有行。
所以,如果我的专栏是:
abc abcd*ef_gh
z1y xxyyzz
我想保留第一行,但不是第二行。
我能想到的唯一方法是:
df.str.contains()
的内容作为匹配模式将s2
应用于s1
有没有办法实现这个并不需要迭代行?
答案 0 :(得分:2)
它可能是可行的(仅用于简单匹配),以矢量化的方式,使用numpy chararray methods:
In [326]:
print df
s1 s2
0 abc abcd*ef_gh
1 z1y xxyyzz
2 aaa aaabbbsss
In [327]:
print df.ix[np.char.find(df.s2.values.astype(str),
df.s1.values.astype(str))>=0,
's1']
0 abc
2 aaa
Name: s1, dtype: object
答案 1 :(得分:1)
我能想到的最好的方法是使用if ($(this).hasClass("class") == true){
this will happen
}
代替手动迭代:
apply