在pandas dataframe中查找元素的确切位置

busg9geu  于 2023-05-27  发布在  其他
关注(0)|答案(2)|浏览(320)

我有以下pandas dataframe:
df = pd.DataFrame({"A": [1,2,3], "B": [-2,8,1], "C": [-451,23,326]})
有没有一个函数可以返回一个元素的确切位置?假设该元素存在于表中并且没有重复。例如,如果element = 326,则返回row:2 col:2。非常感谢

yacmzcpb

yacmzcpb1#

可以使用stack

element = 326

s = df.stack().eq(element)

out = s[s].index.tolist()

输出:[(2, 'C')]
numpy.where

import numpy as np

# as positions
idx, col = np.where(df.eq(element))
# (array([2]), array([2]))

# as labels
df.index[idx], df.columns[col]
# (Int64Index([2], dtype='int64'), Index(['C'], dtype='object'))
fzwojiic

fzwojiic2#

您可以将np.wheredf.values结合使用:

element = 326

indices = np.where(df.values == element)

row_index, col_index = indices[0][0], indices[1][0]

print("Row:", row_index)
print("Column:", col_index)

输出:

Row: 2
Column: 2

相关问题