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:
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')
_
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
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.
Si vous avez plusieurs colonnes à convertir, vous pouvez procéder comme suit:
df[["col1", "col2", "col3"]] = df[["col1", "col2", "col3"]].apply(pd.to_datetime)