2016-04-04 2 views
1

J'ai chargé un csv en utilisant pd.read_csv dans le format suivant -Convert objet de type de données DD-Mon-AAAA au format de données en Python

obj = pd.read_csv('usd_brl_date.csv', sep=';', usecols=[1,2,3,4,5,6]) 

In [34]: obj 
Out [34]: 
      Date Price Open High  Low Change % 
0  18/Mar/2016 3.6128 3.6241 3.6731 3.6051 -0.31% 
1  17/Mar/2016 3.6241 3.7410 3.7449 3.6020 -3.16% 
2  16/Mar/2016 3.7422 3.7643 3.8533 3.7302 -0.62% 

In [35]: usdbrl.dtypes 
Out [35] 
Date   object 
Price  float64 
Open  float64 
High  float64 
Low   float64 
Change %  object 
dtype: object 

Je dois convertir la colonne Date d'objet de type de données type. Ou s'il est possible de définir dtype pour la première colonne dans pd.read_csv.

+0

Avez-vous essayé le paramètre 'parse_dates = [ 'Date']'? – MaxU

Répondre

0

Vous pouvez utiliser to_datetime:

df['Date'] = pd.to_datetime(df['Date'], format="%d/%b/%Y") 

print df 
     Date Price Open High  Low Change % 
0 2016-03-18 3.6128 3.6241 3.6731 3.6051 -0.31% 
1 2016-03-17 3.6241 3.7410 3.7449 3.6020 -3.16% 
2 2016-03-16 3.7422 3.7643 3.8533 3.7302 -0.62% 

Formats.

Ou ajouter le paramètre parse_dates à read_csv, comme mentionné MaxU:

obj = pd.read_csv('usd_brl_date.csv', sep=';', usecols=[1,2,3,4,5,6], parse_dates=['Date']) 

print df 
     Date Price Open High  Low Change % 
0 2016-03-18 3.6128 3.6241 3.6731 3.6051 -0.31% 
1 2016-03-17 3.6241 3.7410 3.7449 3.6020 -3.16% 
2 2016-03-16 3.7422 3.7643 3.8533 3.7302 -0.62% 
+0

Merci! Puis-je définir le format à l'importation pour la première colonne même si je ne connais pas son étiquette dans le fichier? Dans ce cas, j'ai plusieurs fichiers CSV où les premières colonnes ont des étiquettes différentes mais sont toutes de même format. – Pavel

+1

Oui, bien sûr. Vous pouvez utiliser 'parse_dates = [0]' – jezrael

+0

Merci !!! Un de plus si vous pouviez aider - comment puis-je changer la dernière colonne Changer% en numérique? cela devrait correspondre à%. – Pavel