Supposons que j'ai un cadre de données contenant certains événements qui se produisent chaque mois. Les données ne contiennent que les mois et les années des événements et le nombre de ces événements qui se produisent chaque mois.
df = pd.DataFrame({'month':['2018-01', '2018-02', '2018-04','2018-05','2018-06',
'2018-07', '2018-10','2018-11', '2019-01', '2019-02',
'2019-03', '2019-05','2019-07', '2019-11', '2019-12'],
'counts':[10,5,6,1,2,5,7,8,9,1,10,12,8,10,4]})
df
month counts
0 2018-01 10
1 2018-02 5
2 2018-04 6
3 2018-05 1
4 2018-06 2
5 2018-07 5
6 2018-10 7
7 2018-11 8
8 2019-01 9
9 2019-02 1
10 2019-03 10
11 2019-05 12
12 2019-07 10
13 2019-11 10
14 2019-12 4
Comme vous le remarquez ci-dessus, il y a une plage de temps entre janvier 2018 et décembre 2019, mais tous les mois ne comportent pas de valeurs de comptage. Par exemple, il n'y a pas de données pour mars 2018 (2018-03), et il y a de nombreux mois manquants entre les deux.
Je veux mettre ces mois manquants et les remplir avec zéro, donc en gros je veux insérer {'month':'2018-03', count:0}
dans le bon ordre. Je veux également faire la même chose pour tous les mois et valeurs manquants qui sont censés être là.
Ce que j'ai fait est le suivant.
J'ai converti le mois au format approprié.
df['month'] = pd.to_datetime(df['month']).dt.to_period('M')
Le code ci-dessus a bien fonctionné.
J'ai ensuite essayé de créer une plage de dates en fréquence mensuelle, mais cela ne fonctionne pas.
idx = pd.date_range(min(df['month']), max(df['month']), freq='M)
L'erreur dit ValueError: Cannot convert Period to Timestamp unambiguously. Use to_timestamp
Que dois-je faire ? Merci.