Ich möchte die Zeilen- und Spaltenbeschriftungen für Werte erhalten, die einer Bedingung in einem Datenrahmen entsprechen. Um es interessant zu halten, muss ich mit einem hierarchischen (Multi-) Index arbeiten. Zum Beispiel:Ruft die Zeilen- und Spaltenbeschriftungen für ausgewählte Werte in einem Pandas-Datenframe ab.
df = pd.DataFrame(np.arange(16).reshape(4, 4), columns=pd.MultiIndex.from_product((('a', 'b'), ('x', 'y'))))
a b
x y x y
0 0 1 2 3
1 4 5 6 7
2 8 9 10 11
3 12 13 14 15
Lassen Sie uns jetzt sagen, dass ich die Zeilen- und Spaltenbeschriftungen der Elemente wollen, wo
df % 6 == 0
a b
x y x y
0 True False False False
1 False False True False
2 False False False False
3 True False False False
würde ich ich eine möchte bekommen
[(0, ('a', 'x')), (1, ('b', 'x')), (3, ('a', 'x'))]
Bitte beachten allgemeine Lösung, die nicht darauf angewiesen ist, dass der Index monoton ist, oder die bestimmte Auswahl in meinem Beispiel. Diese Frage wurde oft gefragt, aber die Antworten generalisieren nicht:
- index and column for the max value in pandas dataframe: setzt max zu finden auf Sortierung
- Pandas dataframe: return row AND column of maximum value(s): nicht verallgemeinern nicht
- Retrieve indices of NaN values in a pandas dataframe: keine Zeilen Label
- zurückkehren Return list of indices/index where a min/max value occurs in a pandas dataframe: nicht verallgemeinern nicht
- Pandas: Get each value's index and columns values: nicht verallgemeinern nicht/verwendet Iteration
Ist das wirklich so schwer in Pandas?