Python 如何在所有给定的数据帧(Pandas)中获取某个元素的位置?
我一直在苦苦挣扎,因为我没有找到在哪里以及如何获得数据帧的行数和列数等索引。然后我解决了这个问题,并编写了一个代码来完成这项工作,并考虑在这里分享它作为问题的答案。此外,如果有一种更简单的方法,可以增加价值作为答案 假设您得到了这个数据帧,并且希望找到2在该特定数据帧(df)中出现的位置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)
有没有办法说它位于
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)