Ich versuche, das letzte tragfähige Datum in einem Multi-Index-Datenrahmen zu erhalten:Pandas PeriodIndex boolean Scheibe Rückkehr gesamter Index
ix = pd.MultiIndex.from_product([["a"], pd.PeriodIndex(start="2017-01", end="2017-03")])
df = pd.DataFrame(data=[0,1, np.nan], index=ix, columns=["test"])
df # outputs
test
a 2017-01 0.0
2017-02 1.0
2017-03 NaN
So weit so gut, aber das Schneiden und die letzten kehrt den gesamten Index Rückkehr :
df.loc[df["test"].notnull(), "test"].index
MultiIndex(levels=[['a'], [2017-01, 2017-02, 2017-03]], labels=[[0, 0], [0, 1]])
Mein Denken ist, sollte dies ein Array zurück, wo .index.levels[1][-1]
letztes Element so etwas wie Period('2017-02')
ist?
'df.last_valid_index()'? – ayhan
@ayhan Schön! Etwas gelernt. Wirst du eine Antwort schreiben? –
@ cᴏʟᴅsᴘᴇᴇᴅ Es schien, als ob das Beispiel nur so aussehen könnte, um ein MCVE zu erstellen, und das eigentliche Problem bestand darin, die ungenutzten Indizes zu behalten. Fühlen Sie sich frei, das in Ihrer Antwort zu erwähnen. :) – ayhan