我知道如何检查列是否包含字符串。我的优先方法是使用.str.contains
。但是,它返回一个布尔数组,我必须将其用作原始数据帧的掩码。 query
的便利之处在于它返回已经过滤的数据帧。
考虑df
df = pd.DataFrame(np.array(list('abcdefghijklmno')).reshape(5, 3),
columns=list('XYZ')).add('w')
df
使用str.contains
df[df.Y.str.contains('b')]
但我倾向于使用query
df.query('Y == "bw"')
问题是,我不知道如何使用query
检查子字符串。我想要类似的东西。
df.query('Y like "b%"')
答案 0 :(得分:4)
目前不支持此功能,query
仅实现操作的子集,基本上不执行任何字符串功能。
只是评论的旁注,query
确实支持in
关键字的矢量化版本。
df.query('X in ["aw", "dw"]')
Out[9]:
X Y Z
0 aw bw cw
1 dw ew fw