2016-09-15 6 views
-1

Ich habe eine sehr einfache Python Frage. Ich muss die Zeichenfolgenwerte innerhalb eines np.array in Datetime-Werte umwandeln. Die Zeichenfolgenwerte enthalten das folgende Format: ('% Y% m% d'). Weiß jemand wie das geht? Hier meine Testdaten:Umwandlung von np.array (dtype = 'str') in einem np.array (dtype = 'datetime')

date_str = np.array([['20121002', '20121002', '20121002'], 
        ['20121003', '20121003', '20121003'], 
        ['20121004', '20121004', '20121004']]) 

Ich versuche, dieses Array mit der Pandas Bibliothek zu konvertieren. Hier ist mein Code:

import pandas as pd  
pd.to_datetime(date_str, format="%d%m%Y") 

Bitte helfen Sie mir, es sollte eine sehr einfache Möglichkeit, dies zu konvertieren und beachten Sie, dass ich ein Python-Anfänger bin.

Antwort

0

Sie können einen Datenrahmen erstellen, dann apply es pd.to_datetime:

In [68]: pd.DataFrame(date_str).apply(pd.to_datetime) 
Out[68]: 
      0   1   2 
0 2012-10-02 2012-10-02 2012-10-02 
1 2012-10-03 2012-10-03 2012-10-03 
2 2012-10-04 2012-10-04 2012-10-04 

Um die Art des Ergebnisses zu überprüfen, hier ist die Art der ersten Spalte, zum Beispiel:

In [73]: pd.DataFrame(date_str).apply(pd.to_datetime).iloc[:, 0].dtype 
Out[73]: dtype('<M8[ns]') 
+0

Hallo Nehal J Wani, – angi

+0

Vielen Dank für Ihre Awnser. Es funktioniert auch mit ganzzahligen Werten sehr gut. – angi

0

Wandeln Sie jedes Element des Arrays in eine pandas series um und führen Sie die Operation to_datetime() aus.

In [81]: [pd.to_datetime(pd.Series(x), format="%Y%m%d") for x in date_str] 
Out[81]: 
[0 2012-10-02 
1 2012-10-02 
2 2012-10-02 
dtype: datetime64[ns], 0 2012-10-03 
1 2012-10-03 
2 2012-10-03 
dtype: datetime64[ns], 0 2012-10-04 
1 2012-10-04 
2 2012-10-04 
dtype: datetime64[ns]] 
Verwandte Themen