Ich versuche, einen Datenrahmen relativ zur zweiten Ebene eines Index neu zu indizieren. Ich habe einen Datenrahmen, wo die erste Ebene des Index Benutzerkennung ist und die zweite Ebene ist Datum. Zum Beispiel:Pandas Reindexing MultiIndex relativ zu Arbitrary Level
pd.DataFrame({
'id': 3*['A'] + 5*['B'] + 4*['C'],
'date': ['01-01-2010', '02-01-2010', '12-01-2010',
'04-01-2015', '05-01-2015', '03-01-2016', '04-01-2016', '05-01-2016',
'01-01-2015', '02-01-2015', '03-01-2015', '04-01-2015'],
'value': np.random.randint(10,100, 12)})\
.set_index(['id', 'date'])
Ich mag die Daten indizieren die fehlenden Daten zu füllen, aber nur für die Tage zwischen dem maximalen und minimalen Daten für jede „id“ -Gruppe. Der Benutzer "A" sollte fortlaufende monatliche Daten von Januar bis Dezember 2010 haben und Benutzer "B" sollte fortlaufende Daten zwischen April 2015 und Mai 2016 haben. Der Einfachheit halber nehmen wir an, dass ich die NaNs mit Nullen füllen möchte.
Andere ähnliche Fragen gehen davon aus, dass ich den gleichen date_range für alle Benutzer verwenden möchte, was in diesem Anwendungsfall nicht funktioniert. Irgendwelche Ideen?
Das ist nahe, aber ich brauche keine täglichen Daten. Ich brauche es monatlich. Leider funktioniert das Ändern von "D" auf "M" nicht, weil es Monatsenddaten gibt (für die es keine Daten gibt, also erhalten Sie nur Nullen " – Charles
Und wenn" MS "anstatt" M "verwenden? – jezrael
Funktioniert perfekt. Vielen Dank! – Charles