web-dev-qa-db-fra.com

Convertir Pandas _ Colonne en DateTime

J'ai un champ dans un DataFrame pandas qui a été importé au format chaîne. Ce devrait être une variable datetime. Comment puis-je le convertir en une colonne datetime puis filtrer en fonction de la date.

Exemple:

  • Nom du cadre de données: raw_data
  • Nom de la colonne: Mycol
  • Format de valeur dans la colonne: '05SEP2014: 00: 00: 00.000'
162
Chris

Utilisez la fonction to_datetime , en spécifiant un format correspondant à vos données.

_raw_data['Mycol'] =  pd.to_datetime(raw_data['Mycol'], format='%d%b%Y:%H:%M:%S.%f')
_
299
chrisb

Vous pouvez utiliser la méthode DataFrame .apply() pour utiliser les valeurs dans Mycol:

>>> df = pd.DataFrame(['05SEP2014:00:00:00.000'],columns=['Mycol'])
>>> df
                    Mycol
0  05SEP2014:00:00:00.000
>>> import datetime as dt
>>> df['Mycol'] = df['Mycol'].apply(lambda x: 
                                    dt.datetime.strptime(x,'%d%b%Y:%H:%M:%S.%f'))
>>> df
       Mycol
0 2014-09-05
42
bernie
raw_data['Mycol'] =  pd.to_datetime(raw_data['Mycol'], format='%d%b%Y:%H:%M:%S.%f')

fonctionne, mais il en résulte un Python avertissement indiquant qu'une valeur tente d'être définie sur la copie d'une tranche d'un DataFrame. Essayez d'utiliser .loc[row_indexer,col_indexer] = value à la place

Je suppose que cela est dû à une certaine indexation en chaîne.

11
Darth BEHFANS

Si vous avez plusieurs colonnes à convertir, vous pouvez procéder comme suit:

df[["col1", "col2", "col3"]] = df[["col1", "col2", "col3"]].apply(pd.to_datetime)
10
Vlad Bezden