[pandas] Denkanstoß zu reindex mit MultiIndex
Verfasst: Mittwoch 23. März 2022, 20:22
Hallo zusammen 
Ich bräuchte mal einen Denkanstoß, weil ich das Gefühl habe, ziemlich auf dem Schlauch zu stehen.
Ich habe einen DataFrame mit str als Indices:
Nun habe ich ein dict in welchem ein Teil der Indices zusätzlich um eine Eigenschaft beschrieben wird (man könnte natürlich auch ein Tuple nehmen):
Nun würde ich gern den DataFrame mit dem dict als MultiIndex reindexieren. Und genau da stehe ich auf dem oder besser den Schläuchen.
Ich kann zwar aus dem dict einen MultiIndex erstellen, allerdings beinhaltet dieser nicht alle Indices des DataFrames und damit klappt das mit DataFrame.reindex nicht. Die Indices im DataFrame sind aber das Resultat von pd.DataFrame.count_values(), weshalb ich das dict nicht einfach statisch ergänzen kann.
Eine andere Idee war, aus dem dict einen eigenen DataFrame zu erzeugen, den mit dem ursprünglichen zu kombinieren und dann mit den beiden Spalten des dict-DataFrames zu gruppieren (groupby()). Das kommt mir allerdings etwas umständlich und fehleranfällig vor.
Was meint Ihr? Geht das nicht auch eleganter?

Ich bräuchte mal einen Denkanstoß, weil ich das Gefühl habe, ziemlich auf dem Schlauch zu stehen.
Ich habe einen DataFrame mit str als Indices:
Code: Alles auswählen
col1 col2 col3
A 2 1 5
B NaN 7 1
C 2 3 4
Code: Alles auswählen
index_prop = {
'A': 'gruen',
'C': 'blau'
}
Ich kann zwar aus dem dict einen MultiIndex erstellen, allerdings beinhaltet dieser nicht alle Indices des DataFrames und damit klappt das mit DataFrame.reindex nicht. Die Indices im DataFrame sind aber das Resultat von pd.DataFrame.count_values(), weshalb ich das dict nicht einfach statisch ergänzen kann.
Eine andere Idee war, aus dem dict einen eigenen DataFrame zu erzeugen, den mit dem ursprünglichen zu kombinieren und dann mit den beiden Spalten des dict-DataFrames zu gruppieren (groupby()). Das kommt mir allerdings etwas umständlich und fehleranfällig vor.
Was meint Ihr? Geht das nicht auch eleganter?
