【问题标题】:How to check in which column is certain value in pandas.DataFrame?如何检查 pandas.DataFrame 中哪一列是某个值?
【发布时间】:2021-02-12 03:20:19
【问题描述】:

我在 Python 中有 DataFrame,如下所示:

df = pd.DataFrame({"col1"  : ["a", "b", "c"], "col2" : ["a", "d", "e"], "col3" : ["r", "t" , "g"]})

我想检查哪些列的值是“a”(当然是在“col1”和“col2”中)。如何查看?

【问题讨论】:

  • 预期输出如何?是list?还是Series?还是过滤列?

标签: python pandas dataframe filter


【解决方案1】:
(df=='a').any()

col1     True
col2     True
col3    False

【讨论】:

    【解决方案2】:

    如果需要列表中的列名比较DataFrame.eqDataFrame.any 的所有值,以检查每列是否至少有一个True(匹配),最后过滤列名:

    c = df.columns[df.eq('a').any()].tolist()
    print (c)
    ['col1', 'col2']
    

    如果需要将列过滤到新的DataFrame,请使用DataFrame.loc

    df1 = df.loc[:, df.eq('a').any()]
    print (df1)
      col1 col2
    0    a    a
    1    b    d
    2    c    e
    

    【讨论】:

      猜你喜欢
      • 2019-03-17
      • 1970-01-01
      • 2022-07-05
      • 1970-01-01
      • 1970-01-01
      • 2014-05-26
      • 1970-01-01
      • 2015-06-20
      • 2021-07-11
      相关资源
      最近更新 更多