python-3.x - 如何根据条件 pd.Dataframe 获取行名和列名
问题描述
坚持应该很简单的事情。我正在尝试找到一种方法来获取满足某个条件的行和列名pd.Dataframe
。比如给我某个值出现的地方:
A | B | C |D
1 'N' 'S' 'E' 'y'
2 'X' 'C' 'W' 'R'
现在我想知道'S'在哪里 - 1B(也可能是,1,B)
我试过只使用子集作为data[data =='x']
.index 等,但它只返回所有索引。我也尝试过使用pd.where
并得到了相同的结果。
解决方案
要查找单个事件:
res = df.where(df=='S').dropna(how='all').dropna(axis='columns',how='all')
[ f'{r}{c}' for r,c in zip(res.index, res.columns)]
输出:
['1B']
以下也适用于多次出现:
import numpy as np
[f'{df.index[r]}{df.columns[c]}' for r,c in np.argwhere(df.to_numpy()=='S')]
例子:
A B C D
1 N S E S
2 X C W S
输出:
['1B', '1D', '2D']
推荐阅读
- c - 为什么我得到 -0 而不是 0?
- vuejs2 - 如果在 vue 道具中可以需要吗?
- c++ - 让 gRPC 客户端处于侦听模式以接收来自服务器的消息
- ruby-on-rails - Rails:用户信息未更新(使用哈希渲染 ActiveModel Serializer Null)
- php - 非静态方法不应该被静态调用
- javascript - 从 java 文件中的函数弹出一个简单的文本消息警报
- python - Python:计算二次方程的正根
- apache-camel - 用骆驼发送电子邮件
- python - 如何使用 pyvmomi 检索主机的 WWNN?
- django - 重定向到特定的 url 而不是 Django 中的 404