【问题标题】:Pass a list to str.contains - Pandas将列表传递给 str.contains - Pandas
【发布时间】:2020-03-11 10:11:26
【问题描述】:

我有一个与 pandas 相关的问题:我需要根据列中包含(或不包含)的子字符串过滤一列(大约 40k 个条目)。列中的每个条目基本上都是一个很长的属性(文本)列表,我需要能够单独过滤它们。这行代码有效,但不可扩展(我必须过滤数百个属性):

df[df['Product Lev 1'].str.contains('W1 Rough wood', na=False) & df['Product Lev 1'].str.contains('W1.2', na=False)]

是否可以插入我必须过滤的所有项目并将其作为列表传递?或者任何类似的解决方案?

谢谢!

【问题讨论】:

标签: python string pandas filter


【解决方案1】:

像这样:

data = {'col_1': [3, 2, 1, 0], 'col_2': ['aaaaDB', 'bbbbbbCB', 'cccccEB', 'ddddddUB']}
df=pd.DataFrame.from_dict(data)
lst = ['DB','CB']  #replace with your list
rstr = '|'.join(lst)
df[df['col_2'].str.upper().str.contains(rstr)]

【讨论】:

    猜你喜欢
    • 2020-11-14
    • 2012-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多