2017-10-19 42 views
1

J'ai appelé dataframe user_logs avec msno comme la cléRemplacer int avec la date dans la colonne dataframe

msno date num_25 num_50 num_75 num_985 num_100 num_unq total_secs 

rxIP2f2aN0rYNp+toI0Obt/N/FYQX8hcO1fTmmy2h34= 20150513 0 0 0 0 0 1 1 280.335 
rxIP2f2aN0rYNp+toI0Obt/N/FYQX8hcO1fTmmy2h34= 20150709 9 1 0 0 0 1 1 280.335 
yxiEWwE9VR5utpUecLxVdQ5B7NysUPfrNtGINaM2zA8= 20150105 3 3 0 0 0 1 1 280.335 
yxiEWwE9VR5utpUecLxVdQ5B7NysUPfrNtGINaM2zA8= 20150306 1 0 0 0 0 1 1 280.335 
yxiEWwE9VR5utpUecLxVdQ5B7NysUPfrNtGINaM2zA8= 20150501 3 0 0 0 38 38 9649.029 

La colonne date est en int et je voudrais l'avoir comme format datetime mais je suis complètement bloqué . Je n'ai que des plats à créer une nouvelle variable où je fait succedded dans le formatage en dates:

Dates = pd.DataFrame([datetime.strptime(format(d, '.0f'), '%Y%m%d') for d in user_logs.loc[: , 'date']]) 

Mais j'ai le sentiment que l'utilisation DataFrame.replace pourrait être utile?

+0

Il existe un attribut dans read_table lorsque vous lisez un fichier pour créer une trame appelée parse_dates. Essayez de le définir sur True. Cela pourrait aider. –

Répondre

0

Vous pouvez définir le paramètre parse_dates dans read_csv si créer DataFrame du fichier:

df = pd.read_csv('file', parse_dates=['date']) 

Une autre solution est to_datetime:

user_logs['date'] = pd.to_datetime(user_logs['date'], format='%Y%m%d') 
+0

La seconde fonctionne comme un charme. Merci! – theresemoreau

0
datetime.datetime.fromtimestamp(20150513) 

vous permet de convertir cet horodatage à un objet datetime.