Retornar lista de índices / índices em que um valor mínimo / máximo ocorre em um dataframe do pandas

Eu gostaria de procurar um pandaDataFrame para valores mínimos. Eu preciso do min em todo o quadro de dados (em todos os valores) análogo aodf.min().min(). No entanto, também preciso conhecer o índice do (s) local (is) em que esse valor ocorre.

Eu tentei várias abordagens diferentes:

df.where(df == (df.min().min())),df.where(df == df.min().min()).notnull()(fonte) eval_mask = df == df.min().min(); df[val_mask] (fonte)

Eles retornam um quadro de dados de NaNs em valores não min / booleanos, mas não consigo descobrir uma maneira de obter a (linha, col) desses locais.

Existe uma maneira mais elegante de pesquisar um quadro de dados por um mínimo / máximo e retornar uma lista contendo todos os locais das ocorrências?

import pandas as pd

keys = ['x', 'y', 'z']
vals = [[1,2,-1], [3,5,1], [4,2,3]]
data = dict(zip(keys,vals))
df = pd.DataFrame(data)

list_of_lowest = []

for column_name, column in df.iteritems():
    if len(df[column == df.min().min()]) > 0:
        print(column_name, column.where(column ==df.min().min()).dropna())
        list_of_lowest.append([column_name, column.where(column ==df.min().min()).dropna()])

list_of_lowest
output: [['x', 2   -1.0
Name: x, dtype: float64]]

questionAnswers(1)

yourAnswerToTheQuestion