web-dev-qa-db-fra.com

pandas Timestamp Series to String?

Je suis nouveau sur Python (venant de R), et j'essaie de comprendre comment je peux convertir une série d’horodatages dans un cadre de données pandas (dans mon cas, cela s’appelle df['timestamp']) en ce que j’appellerais un vecteur chaîne dans R. possible? Comment cela serait-il fait?

J'ai essayé df['timestamp'].apply('str'), mais cela semble simplement mettre la colonne entière df['timestamp'] dans une longue chaîne. Je cherche à convertir chaque élément en chaîne et à préserver la structure, de sorte que ce soit toujours un vecteur (ou peut-être cela s'appelle-t-il un tableau?)

4
StatsStudent

Considérons la dataframe df

df = pd.DataFrame(dict(timestamp=pd.to_datetime(['2000-01-01'])))

df

   timestamp
0 2000-01-01

Utilisez l'accesseur datetime dt pour accéder à la méthode strftime . Vous pouvez passer une chaîne de format à strftime et elle retournera une chaîne formatée. Lorsqu'il est utilisé avec l'accesseur dt, vous obtiendrez une série de chaînes.

df.timestamp.dt.strftime('%Y-%m-%d')

0    2000-01-01
Name: timestamp, dtype: object

Visitez strftime.org pour un ensemble pratique de chaînes de format.

4
piRSquared

Utilisez astype

>>> import pandas as pd
>>> df = pd.to_datetime(pd.Series(['Jul 31, 2009', '2010-01-10', None])) 
>>> df.astype(str)
0    2009-07-31
1    2010-01-10
2           NaT
dtype: object

retourne un tableau de chaînes 

2
VinceP