J'ai un pandas.series Notez que certaines de ses dates sont manquantes. Je veux dire Comment puis-je implémenter une fonction qui a les entrées suivantes et sorties: p> Cette fonction émet l'index de la date de Je sais que s code> comme ceci s.index code> ne contient pas 2008-02-23 code>, 2008-02-24 code>, 2008-02-27 code>, 2008-03-01 code> et 2008-03-02 code>. p> S code>. Si la date n'est introuvable dans s code>, il renvoie l'index de la date la plus proche avant la date d'entrée. P> s.index.get_loc (pd. Horodatage ('2008-02-20 00:00:00')) code> peut retourner 2 code>, qui est l'index du 2008-02-20 code> de < code> s.index code>. Mais cette méthode ne fonctionne pas lorsque son entrée est '2008-02-24 00h00:00' code>. P> p>
3 Réponses :
Vous pouvez utiliser Vous devrez peut-être modifier les paramètres de la fonction ou d'ajuster vos résultats un peu pour correspondre exactement à ce que vous voulez. p> p> numpy.searchsorted code>
( https://docs.scipy.org/doc/numpy /reference/generated/numpy.searchsorted.html )
Redémarrez la date dont vous avez besoin pour l'index ( Assurez-vous que votre index est trié et est un objet DateTime: < / p> date code> dans s code>), filtre uniquement des numéros inférieurs ou égaux à zéro code> ) et utilisez argmax code > pour obtenir l'index:
Créer une colonne temporaire qui fonctionne de 0 à la fin du DF, ... 0,1,2,3, ...
df.asof(test.input)
date temp
input
2008-02-22 21.35 4.0
2008-02-23 21.35 4.0
2008-02-24 21.35 4.0
2008-02-25 22.80 5.0
2008-02-28 23.20 6.0