【问题标题】:how to determine if any column has a particular value如何确定任何列是否具有特定值
【发布时间】:2018-10-03 21:16:30
【问题描述】:

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

ID           Column1            Column2             Column3
1            cats                 dog                bird
2            dog                 elephant           tiger
3            leopard             monkey             cat

我想创建一个新列来指示 cat 是否存在于该行中,作为字符串的一部分,以便数据框如下所示:

   ID           Column1            Column2             Column3  Column4
    1            cats                 dog                bird      Yes
    2            dog                 elephant           tiger     No
    3            leopard             monkey             cat       Yes

我不想单独评估每一列,因为在真实数据集中有很多列。

【问题讨论】:

  • (df=='cat').any(1)

标签: python string pandas row


【解决方案1】:

以下内容应该可以为您解决问题:

df['Column4'] = np.where((df.astype(np.object)=='cat').any(1), 'Yes', 'No')

工作示例:

>>> import pandas as pd
>>> import numpy as np
>>> d = {'ID': [1, 2, 3], 'Column1': ['cat', 'dog', 'leopard'], 'Column2': ['dog', 'elephant', 'monkey'], 'Column3': ['bird', 'tiger', 'cat']}
>>> df = pd.DataFrame(data=d)
>>> df
   Column1   Column2 Column3  ID
0      cat       dog    bird   1
1      dog  elephant   tiger   2
2  leopard    monkey     cat   3
>>> df['Column4'] = np.where((df.astype(np.object)=='cat').any(1), 'Yes', 'No')
>>> df
   Column1   Column2 Column3  ID Column4
0      cat       dog    bird   1     Yes
1      dog  elephant   tiger   2      No
2  leopard    monkey     cat   3     Yes

编辑: 如果您想检查是否有任何列 包含 特定字符串,您可以使用以下内容:

df['Column4'] = df.apply(lambda r: r.str.contains('cat', case=False).any(), axis=1)

【讨论】:

    猜你喜欢
    • 2021-12-26
    • 2011-03-04
    • 1970-01-01
    • 2014-02-14
    • 2019-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-16
    相关资源
    最近更新 更多