Comment obtenir DataFrame.pct_change pour calculer la variation mensuelle quotidienne des données sur les prix?

Je sais qu'il est possible de compenser avec le periods argument, mais comment peut-on aller sur le retour-izing quotidienne des données sur les prix qui se propage tout au long d'un mois (jours de bourse, par exemple)?

Exemple de données:

In [1]: df.AAPL
2009-01-02 16:00:00    90.36
2009-01-05 16:00:00    94.18
2009-01-06 16:00:00    92.62
2009-01-07 16:00:00    90.62
2009-01-08 16:00:00    92.30
2009-01-09 16:00:00    90.19
2009-01-12 16:00:00    88.28
2009-01-13 16:00:00    87.34
2009-01-14 16:00:00    84.97
2009-01-15 16:00:00    83.02
2009-01-16 16:00:00    81.98
2009-01-20 16:00:00    77.87
2009-01-21 16:00:00    82.48
2009-01-22 16:00:00    87.98
2009-01-23 16:00:00    87.98
...
2009-12-10 16:00:00    195.59
2009-12-11 16:00:00    193.84
2009-12-14 16:00:00    196.14
2009-12-15 16:00:00    193.34
2009-12-16 16:00:00    194.20
2009-12-17 16:00:00    191.04
2009-12-18 16:00:00    194.59
2009-12-21 16:00:00    197.38
2009-12-22 16:00:00    199.50
2009-12-23 16:00:00    201.24
2009-12-24 16:00:00    208.15
2009-12-28 16:00:00    210.71
2009-12-29 16:00:00    208.21
2009-12-30 16:00:00    210.74
2009-12-31 16:00:00    209.83
Name: AAPL, Length: 252

Comme vous pouvez le voir, il suffit de compensation de 30 ne serait pas produire des résultats corrects, il y a des lacunes dans les données timestamp, pas tous les mois est de 30 jours, etc. Je sais il doit y avoir un moyen facile de faire cela en utilisant les pandas.

la différence est due à la fréquence différente: BM est l'affaire du mois, tandis que M est le mois (voir le docs).

OriginalL'auteur Dallas | 2012-12-26