Reputation: 630
I'd like to get the index and column name of the minimum value in a pandas DataFrame across all rows and all columns.
I've tried .idxmin but this seems to only work when applied on a column. Ideally the function is a one-liner that doesn't require loops. It seems like a very common problem, but I haven't found a solution yet.
My DataFrame:
col0, col1, col2
index0 1 2 3
index1 2 3 4
index2 5 6 7
I'd like to get the index and column for the minimum value across matrix: 1.
so:
some_func(df) = (index0,col0)
Upvotes: 6
Views: 2411
Reputation: 294218
divmod
i, j = divmod(np.argmin(np.ravel(df)), df.shape[1])
(df.index[i], df.columns[j])
('index0', 'col0')
Upvotes: 2