获取pandas数据对象的x,y样式坐标

时间:2018-01-29 21:47:06

标签: python pandas

我想知道是否可以在pandas数据帧中搜索值,如果找到它,则返回行,列名称样式坐标。例如,如果在下面的数据帧中搜索mat的字符串,则会返回(3,C)。

     A    B    C
0   20     32  bat
1   30    234  cat
2   10     23  rat
3   40     23  mat
4   50  42523  etc

我已经阅读了文档,我发现最接近的解决方案是index.get_loc(),但这只会根据命名索引返回loc

pandas版本0.22.0

1 个答案:

答案 0 :(得分:3)

正如@Wen建议的那样,np.where是搜索值坐标的有效方法。以下方法将返回此类坐标的列表。

import pandas as pd

df = pd.DataFrame([[20, 32, 'bat'], [30, 234, 'cat'],
                  [10, 23, 'rat'], [40, 23, 'mat'],
                  [50, 42523, 'etc']], columns=['A', 'B', 'C'])

[(x, df.columns[y]) for x, y in zip(*np.where(df.values == 'mat'))]  # [(3, 'C')]