2016-04-04 7 views
1

ich eine csv geladen haben mit pd.read_csv in folgendem Format -Convert Datentyp Objekt DD-Mon-JJJJ Datenformat in 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 

Ich brauche die Spalte Datum Typ Objekt, um Daten zu konvertieren Art. Oder wenn es möglich ist, dtype für die erste Spalte innerhalb von pd.read_csv zu setzen.

+0

haben Sie versucht, 'parse_dates = [ 'Date']' Parameter? – MaxU

Antwort

0

können Sie to_datetime verwenden:

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.

Oder fügen Sie Parameter parse_dates zu read_csv, wie MaxU erwähnt:

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

Danke! Kann ich das Format beim Import für die erste Spalte einstellen, auch wenn ich sein Label in der Datei nicht kenne? In diesem Fall habe ich mehrere CSV-Dateien, wobei die ersten Spalten unterschiedliche Etiketten haben, aber alle die gleichen Formatdaten haben. – Pavel

+1

Ja, sicher. Sie können 'parse_dates = [0]' – jezrael

+0

verwenden Danke !!! Noch eins, wenn Sie helfen könnten - wie kann ich die letzte Spalte Change% zu Numeric ändern? Es sollte mit% übereinstimmen. – Pavel