Rückkehrliste der Indizes / Indizes, bei denen ein Min / Max-Wert in einem Pandas-Datenrahmen vorkommt
Ich möchte einen Pandas suchenDataFrame
für minimale Werte. Ich brauche die min im gesamten Datenrahmen (über alle Werte hinweg) analog zudf.min().min()
. Ich brauche aber auch den Index der Orte, an denen dieser Wert vorkommt.
Ich habe verschiedene Ansätze ausprobiert:
df.where(df == (df.min().min()))
,df.where(df == df.min().min()).notnull()
(Quell) unval_mask = df == df.min().min(); df[val_mask]
(Quell).Diese geben einen Datenrahmen mit NaNs für nicht-min / boolesche Werte zurück, aber ich kann keine Möglichkeit finden, die (Zeile, Spalte) dieser Speicherorte abzurufen.
Gibt es eine elegantere Möglichkeit, einen Datenrahmen nach einem Min / Max-Wert zu durchsuchen und eine Liste mit allen Speicherorten des Ereignisses (der Ereignisse) zurückzugeben?
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]]