J'ai rencontré un "bug" vraiment étrange lorsque j'applique une fonction en utilisant map
.
Voici l'exemple csv
que vous pouvez utiliser pour reproduire le problème :
DATE
2017-03-12 02:59:00
2017-03-12 03:59:00
Voici le code que j'utilise :
import pandas as pd
import datetime
df = pd.read_csv('example.csv', parse_dates = ['DATE'])
df['TIMESTAMP_C'] = [str(x.timestamp()) for x in df['DATE']]
df['TIMESTAMP_H'] = df['DATE'].map(datetime.datetime.timestamp).map(str)
Et voici le cadre de données de sortie :
DATE TIMESTAMP_C TIMESTAMP_H
0 2017-03-12 02:59:00 1489287540.0 1489309140.0
1 2017-03-12 03:59:00 1489291140.0 1489309140.0
Ainsi, comme vous pouvez le constater, l'horodatage renvoyé par la fonction map est le même et n'est pas correct. Je me demande pourquoi le list comprehension
renvoie les bons. Il se peut qu'il ne s'agisse pas d'un bogue et que je fasse seulement des erreurs avec la fonction map, mais j'aimerais vraiment l'utiliser car elle accélère beaucoup le calcul.
EDIT : Je ne demande pas comment faire, je demande pourquoi la façon dont je le fais donne des résultats différents.