【问题标题】:Efficient way to search string contains in multiple columns using pandas [duplicate]使用熊猫搜索字符串包含在多列中的有效方法[重复]
【发布时间】:2021-01-03 09:57:04
【问题描述】:

我有一个如下所示的 pandas 数据框

import pandas as pd
import numpy as np
df=pd.DataFrame({'Adm DateTime':['02/25/2012','03/05/1996','11/12/2010','31/05/2012','21/07/2019','31/10/2020'],
                 's_id':[1,2,3,4,5,6],
                'test_string_1':['test','Thalaivar','Superstar','God','Favorite','Rajinikanth'],
                'test_string_2':['Rajinikanth','God of Cinema','Favorite','Superstar','Rahman','ARR']})
df['Adm DateTime'] = pd.to_datetime(df['Adm DateTime'])

我想检查任何列中是否存在子字符串(test_string_1test_string_2

虽然我可以为一列做如下所示

df['op_flag'] = np.where(df['test_string_1'].str.contains('Rajini|God|Thalaivar',case=False),1, 0)

您能帮我解决一下我们如何在两列中执行此操作吗?

我应该用不同的列名重复上面的代码吗?

有没有办法提供我想在代码中检查的列名?

【问题讨论】:

    标签: python python-3.x pandas dataframe pandas-groupby


    【解决方案1】:

    您可以使用 lambda 函数来做到这一点

    In [40]: df[['test_string_1', 'test_string_2']].apply(lambda x: x.str.contains('Rajini|God|Thalaivar',case=False)).any(axis=1).astype(int)
    Out[40]:
    0    1
    1    1
    2    0
    3    1
    4    0
    5    1
    dtype: int64
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-04
      • 1970-01-01
      • 2012-01-29
      • 2018-08-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多