web-dev-qa-db-fra.com

Comment convertir un horodatage en datetime.date dans un fichier de données pandas?

Je dois fusionner deux datagrames de pandas sur des dates, mais ils ont actuellement différents types de date. 1 correspond à l'horodatage (importé d'Excel) et l'autre à datetime.date.

Aucun conseil?

J'ai essayé pd.to_datetime().date mais cela ne fonctionne que sur un seul élément (par exemple df.ix[0,0]), cela ne me permet pas de l'appliquer à l'ensemble de la série (par exemple df['mydates']) ou au cadre de données.

5
Afo B

J'ai trouvé ce qui suit le plus efficace lorsque j'ai rencontré un problème similaire. Par exemple, avec le dataframe df avec une série de timestmaps dans la colonne ts

df.ts.apply(lambda x: pd.datetime.fromtimestamp(x).date())

Cela rend la conversion, vous pouvez omettre le suffixe .date() pour les dates/heures. Ensuite, pour modifier la colonne sur le dataframe. Ainsi...

df.loc[:, 'ts'] = df.ts.apply(lambda x: pd.datetime.fromtimestamp(x).date())
0
BrotherJack

Une autre question a été marquée comme dupe indiquant cela, mais elle n'incluait pas cette réponse, qui semble la plus simple (peut-être que cette méthode n'existait pas encore lorsque cette question a été postée/répondue):

La documentation pandas montre une méthode pandas.Timestamp.to_pydatetime pour "Convertir un objet Timestamp en objet datetime Python natif".

0
codingatty

Si vous avez besoin des objets datetime.date ... alors transmettez-les avec l'attribut .date du Timestamp

pd.to_datetime(df['mydates']).date
0
piRSquared