我想知道是否可以在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
答案 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')]