Pandas a modifié son API de rééchantillonnage dans la version 18.1. Les méthodes de réduction ne sont plus un argument de la méthode de rééchantillonnage, mais sont leurs propres méthodes.
Exemple :
import pandas as pd
import numpy as np
rng = pd.date_range('1/1/2012', periods=100, freq='S')
ts = pd.Series(np.random.randint(0, 500, len(rng)), index=rng)
#Old API
ts.resample('5Min', how='sum')
#New API
ts.resample('5Min').sum()
J'avais un code qui se comportait comme suit :
def my_func(my_series, how="sum"):
#Do some stuff before
my_series.resample('5Min' how=how)
Comment faire avec la nouvelle API ? Je veux my_func
pour pouvoir appeler la méthode de rééchantillonnage avec différentes méthodes de réduction.
Un répondre couvre déjà le cas où le "comment" est une simple fonction d'agrégation. J'avais davantage à l'esprit les cas où nous voulons effectuer un suréchantillonnage.
Par exemple
#Old API:
ts.resample('250L', fill_method='ffill')
#New API
ts.resample('250L').ffill()
Notez que dans mon code réel, j'ai quelque chose de plus proche de cela :
def my_func(dummy_df, freq="10Min", how="last", label="right", closed="right", fill_method="ffill"):
dummy_df.resample(freq, how=how, label=label, closed=closed, fill_method=fill_method)
et souhaite le réécrire avec la nouvelle API.
Il est déconcertant de constater que le la documentation encore (26.07.2016) comporte cette ligne :
Toute fonction disponible via le dispatching peut être donnée au paramètre how par son nom, y compris sum, mean, std, sem, max, min, median, first, last, ohlc.
Mais le how
est censé devenir obsolète.