ich einen Datenrahmen wie solche haben:für Datum und Uhrzeit Upsampling
rows = [['bob', '01/2017', 12],
['bob', '02/2017', 14],
['bob', '03/2017', 16],
['julia', '01/2017', 18],
['julia', '02/2017', 16],
['julia', '03/2017', 24]]
df = pd.DataFrame(rows, columns = ['name','date','val'])
Unter der Annahme, dass jeder Monat 4 Wochen hat (ich werde eine Lookup verwenden Monat num Wochen passen, aber der Einfachheit halber annehmen, 4), ich erstellen möchten eine Zeile für jede Person für jede Woche des Monats, wobei der Wert der Monatwert geteilt durch 4 (oder n_Wochen) ist.
Ich versuchte mit .resample()
und .asfreq()
aber sie sagten mir, ich brauche einen eindeutigen Index.
Wie kann ich das in Pandas machen?
EDIT
Ok, so dass ich diese bekam:
weekly = df.groupby('name').apply(lambda g: g.set_index('date').resample('w').pad().reset_index()).reset_index(drop=True)
weekly.val/4
date name val
0 2017-01-01 bob 3
1 2017-01-08 bob 3
2 2017-01-15 bob 3
3 2017-01-22 bob 3
4 2017-01-29 bob 3
5 2017-02-05 bob 3.5
6 2017-02-12 bob 3.5
7 2017-02-19 bob 3.5
8 2017-02-26 bob 3.5
9 2017-03-05 bob 4
10 2017-01-01 julia 4.5
11 2017-01-08 julia 4.5
12 2017-01-15 julia 4.5
13 2017-01-22 julia 4.5
14 2017-01-29 julia 4.5
15 2017-02-05 julia 4
16 2017-02-12 julia 4
17 2017-02-19 julia 4
18 2017-02-26 julia 4
19 2017-03-05 julia 6
Mein Problem ist nach wie vor, dass es den im letzten Monat von jeder Gruppe nicht ist zu verteilen.
Ich bin verwirrt. Bitte zeigen Sie uns, wie die Ergebnisse aussehen würden, wenn Sie die von Ihnen zur Verfügung gestellte Probe betrachten. – piRSquared
hat einen Schnitt gemacht - hat das geklärt? – RSHAP