Python 如何在所有给定的数据帧(Pandas)中获取某个元素的位置?

Python 如何在所有给定的数据帧(Pandas)中获取某个元素的位置?,python,pandas,jupyter-notebook,Python,Pandas,Jupyter Notebook,我一直在苦苦挣扎,因为我没有找到在哪里以及如何获得数据帧的行数和列数等索引。然后我解决了这个问题,并编写了一个代码来完成这项工作,并考虑在这里分享它作为问题的答案。此外,如果有一种更简单的方法,可以增加价值作为答案 假设您得到了这个数据帧,并且希望找到2在该特定数据帧(df)中出现的位置 有没有办法说它位于df.ix[1,0]和df.ix[2,1]经过思考,我得出以下结论,我写了一个函数 def Get_indcies(df,b): t=np.where(df.values == b)

我一直在苦苦挣扎,因为我没有找到在哪里以及如何获得数据帧的行数和列数等索引。然后我解决了这个问题,并编写了一个代码来完成这项工作,并考虑在这里分享它作为问题的答案。此外,如果有一种更简单的方法,可以增加价值作为答案

假设您得到了这个数据帧,并且希望找到2在该特定数据帧(df)中出现的位置


有没有办法说它位于
df.ix[1,0]
df.ix[2,1]

经过思考,我得出以下结论,我写了一个函数

def Get_indcies(df,b):
    t=np.where(df.values == b)
    return np.column_stack((t[0],t[1]))
在这种情况下,答案是

t=Get_indcies(df,2)
我会给你

array([[1, 0],
       [2, 1]], dtype=int64)

因此,元素会精确地显示它们所在的位置,以获取与
索引
对象值相关的行、列对作为元组

s = df.eq(2).stack()
s[s].index.values

array([('b', 'one'), ('c', 'two')], dtype=object)
要获取位置,请构造一个不带索引或列的新数据帧

s = pd.DataFrame(df.values).eq(2).stack()
s[s].index.values

array([(1, 0), (2, 1)], dtype=object)

list(df.stack()[df.stack()==2].index)
具有精确的列和索引值,或使用
np.column\u stack(np.where(df==2))
作为位置?虽然此代码可能会回答问题,但提供有关此代码回答问题的原因和/或方式的其他上下文可以提高其长期价值。
s = pd.DataFrame(df.values).eq(2).stack()
s[s].index.values

array([(1, 0), (2, 1)], dtype=object)
for row in range(0,df.shape[0]):

    s = df.eq(value-what you want to serch).stack()
    print(s[s].index.values)