我们可以使用str.contains在多个列中查找值吗?

时间:2019-09-06 10:45:33

标签: python pandas

我有多个列的pandas数据框,想基于其他列(列“ type”)中的值创建新列。为了对值进行分类,我使用带有str.contains的pd.nd.where

当前,我的代码正在运行。但是我为每一列使用了每个过滤器。相反,我想对多个列使用一个过滤器

df.type = pd.np.where(df.column1.str.contains('|'.join(filter1), case = False), "Type1", 
    pd.np.where(df.column2.str.contains('|'.join(filter1), case = False), "Type1", 
    pd.np.where(df.column3.str.contains('|'.join(filter1), case = False), "Type1", 
    "TypeDifferent")))

我希望输出的时间短得多。像这样:

df.type = pd.np.where(df[[column1, column2, column3]].str.contains('|'.join(filter), case = False), "Type1", "TypeDifferent")))

0 个答案:

没有答案