我有多个列的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")))