【发布时间】:2019-07-29 15:58:19
【问题描述】:
假设我们有一个数据框 df 和一个标记为“A”的列。对于选择匹配 ONE string -'some_string' 的行,df['A'].str.contains('some_string') 效果很好。
我的问题是,是否有相应的方法可以传递给包含字符串列表,以便获得部分匹配?而不是 'some_string' 我可以给它一个字符串列表吗?我试图避免使用 for 循环并将数据帧切片并连接到新的数据帧中。
假设数据框是
pd.DataFrame(np.array([['cat', 2], ['rat', 5], ['ball', 8],['string', 8]]),columns=['A', 'B']))
和
list =['at','ll','ac']
所以我想选择带有 cat、rat、ball 的行。对不起,人为设计的例子。
【问题讨论】:
-
你能创建一个示例 df 和一个预期的 df 吗?这将有助于我们复制您的问题。 :) 谢谢
-
您或许可以使用
df['A'].str.contains("|".join(list_of_strings))。 -
也可以查看this answer。我们可以在 lambda 函数中编写任何逻辑。