2017-10-10 1 views
1

Im apprenant python (3.6 avec anaconda) pour mes études. Im utilisant des pandas pour importer un fichier xls avec 2 colonnes: Date (jj-mm-aaaa) et le prix. Mais pandas géants change le format de date:Pandas excel import change le format de date

xls_file = pd.read_excel('myfile.xls') 
print(xls_file.iloc[0, 0]) 

Im obtenir:

2010-01-04 00:00:00 

au lieu de:

04-01-2010  or at least : 2010-01-04 

Je ne sais pas pourquoi hh: mm: ss est ajouté, je reçois la même résultat pour chaque ligne de la colonne Date. J'ai essayé aussi différentes choses en utilisant to_datetime mais ça ne l'a pas corrigé.

Une idée?

Merci

+1

Les dates dans Excel ne sont pas stockées sous forme de chaîne, elles ne sont qu'un nombre. Lorsque vous extrayez ces données d'Excel, tout formatage est perdu. Python applique sa propre mise en forme lorsque vous l'imprimez. –

+0

Merci pour cette information, mon problème a été corrigé de toute façon;) – CDVC23

Répondre

0

Ce que vous avez besoin est de définir le format que les valeurs datetime seront imprimés. Il pourrait y avoir un moyen de le faire, mais plus élégant quelque chose comme ça fonctionnera:

In [11]: df 
Out[11]: 
    id  date 
0 1 2017-09-12 
1 2 2017-10-20 

# Specifying the format 
In [16]: print(pd.datetime.strftime(df.iloc[0,1], "%Y-%m-%d")) 
2017-09-12 

Si vous souhaitez enregistrer la date sous forme de chaîne dans le format spécifique, vous pouvez aussi faire quelque chose comme:

In [17]: df["datestr"] = pd.datetime.strftime(df.iloc[0,1], "%Y-%m-%d") 
In [18]: df 
Out[18]: 
    id  date  datestr 
0 1 2017-09-12 2017-09-12 
1 2 2017-10-20 2017-09-12 

In [19]: df.dtypes 
Out[19]: 
id     int64 
date  datetime64[ns] 
datestr   object 
dtype: object 
+0

Merci, ça fonctionne bien avec pd.datetime.strftime (df.iloc [0,1], "% Y-% m-% d") – CDVC23

+0

Merci d'avoir accepté la réponse –