假设我有一个这样的Pandas 数据帧

    name    col1    col2    col3 
0   AAA     1      0        2 
1   BBB     2      1        2 
2   CCC     0      0        2

我想要(A)任何包含值2的列的名称(即,col1,col3),以及(B)任何包含only个值为2的列(即,col3)的名称.

我了解如何使用DataFrame.any()DataFrame.all()来 Select DataFrame中值出现在任意或所有列中的行,但我正在try 查找值出现在(A)任意行或(B)所有行中的列.

推荐答案

您可以按照您对列的描述执行以下操作:

df.columns[df.eq(2).any()]
# Index(['col1', 'col3'], dtype='object')

df.columns[df.eq(2).all()]
# Index(['col3'], dtype='object')

Python相关问答推荐

Django关于UniqueBindition的更新

为什么我的代码会进入无限循环?

如何使用函数正确索引收件箱?

Python无法在已导入的目录中看到新模块

计算相同形状的两个张量的SSE损失

难以在Manim中正确定位对象

使用miniconda创建环境的问题

查找两极rame中组之间的所有差异

如果值不存在,列表理解返回列表

pandas滚动和窗口中有效观察的最大数量

如何让程序打印新段落上的每一行?

如何过滤包含2个指定子字符串的收件箱列名?

使用密钥字典重新配置嵌套字典密钥名

未知依赖项pin—1阻止conda安装""

Python列表不会在条件while循环中正确随机化'

如何在Python中使用另一个数据框更改列值(列表)

在不同的帧B中判断帧A中的子字符串,每个帧的大小不同

Polars Group by描述扩展

如果包含特定值,则筛选Groupby

根据客户端是否正在传输响应来更改基于Flask的API的行为