Supposons que j'ai un Je veux calculer le premier vendredi de chaque mois dans cet objet datetime. Ma sortie souhaitée est un autre objet DateTime avec ces dates pour les premiers vendredis. P> Ma tentative était la suivante: p> mais bien sûr que ce code échouera Si, par exemple, un certain mois a 5 vendredi.
Par exemple, la sortie que je reçois du code ci-dessus est p> janvier 2014 est sujette à l'erreur que je viens de décrire. Et puis tout est vissé. P> Comment puis-je le faire de manière efficace? Je sens que denttitimeindex code> objet dans python stocké comme trading_days code>: pandas code> devrait avoir quelque chose comme ça déjà intégré mais je ne pouvais pas le trouver. Merci beaucoup! P> p>
4 Réponses :
Pas à 100% sûr de savoir comment vous recréer exemple DateTimeIndex, mais nous allons commencer par un simple sous-ensemble au vendredi puis déposer des doublons sur la période de l'année p> bdate_range code>.
Lorsque vous découvrirez le premier vendredi de la matrice, la logique suivante peut vous aider. P>
permet de dire que le premier vendredi était le premier vendredi 2014-01-03, puis vérifiez le chiffre à la 4ème position à partir de la fin (je compte «- 'comme poste), ajoutez maintenant 28 à l'indice actuel. Si la date reçue a également le même chiffre à la 4ème position à la suite de celle de la précédente, ajoutez 7 de plus à l'indice et que cet indice sera le premier vendredi du mois prochain, sinon l'indice obtenu en ajoutant 28 volonté. le premier vendredi du mois prochain. P>
Ici, vous n'êtes pas obligé de vérifier la 5ème position au cours des 3 derniers mois, c'est-à-dire 10, 11 et 12, tous ont du dernier chiffre différent de leurs prédécesseurs. P>
Toutes les explications ci-dessus peuvent être facilement implémentées à l'aide de Conditions de Pyhton. P>
Voici une fonction simple qui extraire le premier vendredi de chaque mois (ou quatrième jeudi de chaque mois, ou ...) d'un Pandas DateTimeDex. C'est une excuse d'utiliser la fonction Utilisez la fonction comme ceci: p> itheroTools.groupby () code>.
Pas sûr que c'est mieux que les autres réponses déjà affichées. Mais j'ai commencé avec les dates dans un DateTimeindex code> selon votre question: