2016-08-08 28 views
0

ich eine Funktion bin mit meinem Zeitpunkt konsistent in einer Spalte zu bringen, geht es soZeit in Strings Format: Python

from dateutil.parser import parse 
def dateconv1(x): 
    c = parse(x) 
    return c 

so, wenn ich es benutzen werden, wie es funktioniert

In[15]:dateconv1("1/22/2016 15:03") 
Out[15]:datetime.datetime(2016, 1, 22, 15, 3) 

Aber wenn ich es in den variablen wie diese

a= 1/22/2016 15:03 
In[16]:dateconv1(str(a)) 

passieren, es funktioniert nicht so, wie es in Anführungszeichen zu bringen oder als String, jede Hilfe wird schätzen

+6

Sie das Datum als Ausdruck mit Teilung inputing statt als String – muddyfish

+0

Das ist mein Frage- ist, wie es umwickeln wie diese wtih einige Python formule oder Funktion, denn in meiner Spalte ist es wie 1/22/2016 15:03, und str Funktion scheint nicht zu funktionieren –

+0

Warum nicht 'parse()' verwenden, wie es ist, anstatt eine Funktion zu schreiben, die nur die Funktion aufruft? –

Antwort

1

dass you are talking about pandas dataset vorausgesetzt, können Sie Pandas to_datetime() Methode verwenden:

In [66]: dates = ['1/22/2016 15:03', 'Jul 22 2016 12:32PM', 'Jul 22 2016 5:40PM', 
    ....:   'Jul 22 2016 8:31PM', 'Jul 23 2016 2:01PM', 'Jul 23 2016 7:24PM', 
    ....:   'Jul 24 2016 4:30PM', 'Aug 1 2016 4:00PM', 'Aug 1 2016 7:49PM'] 

In [67]: df = pd.DataFrame({'d':dates}) 

In [68]: df.dtypes 
Out[68]: 
d object 
dtype: object 

d object - bedeutet, dass die d Spalte einer Zeichenfolge (Objekt) dtype

In [69]: df 
Out[69]: 
        d 
0 1/22/2016 15:03 
1 Jul 22 2016 12:32PM 
2 Jul 22 2016 5:40PM 
3 Jul 22 2016 8:31PM 
4 Jul 23 2016 2:01PM 
5 Jul 23 2016 7:24PM 
6 Jul 24 2016 4:30PM 
7 Aug 1 2016 4:00PM 
8 Aug 1 2016 7:49PM 

ist es datetime lassen konvertieren dtype:

In [70]: df.d = pd.to_datetime(df.d) 

In [71]: df 
Out[71]: 
        d 
0 2016-01-22 15:03:00 
1 2016-07-22 12:32:00 
2 2016-07-22 17:40:00 
3 2016-07-22 20:31:00 
4 2016-07-23 14:01:00 
5 2016-07-23 19:24:00 
6 2016-07-24 16:30:00 
7 2016-08-01 16:00:00 
8 2016-08-01 19:49:00 

Check dtype wieder:

In [72]: df.dtypes 
Out[72]: 
d datetime64[ns] 
dtype: object 
+0

Sie nicht einmal erkennen, Sie haben meine viel Zeit von Lamdas gespeichert, versuchen außer, Schleifen, Parse, Datetime und so viele, Danke –

+0

@manusharma, Sie sind willkommen. :) Wenn du das nächste Mal deine Frage mit einem Pandas-Tag markierst, wirst du Pandas-bezogene Fragen stellen - auf diese Weise wirst du Pandas-Spezialisten anziehen und deine Fragen viel schneller beantwortet bekommen – MaxU

0

Was Sie haben, ist keine gültige Syntax zum Definieren einer Python-Variablen. Sie sollten mit '' oder "" wickeln, um es einen String zu machen:

a = "1/22/2016 15:03" 
dateconv1(a) 
+0

Das ist die Frage- Wie man es einwickeln '' oder "", wenn die str-Funktion nicht funktioniert –

+0

@manusharma Wenn Sie von einer Datei lesen, sollte diese bereits als Zeichenfolge eingefügt werden. Mit "str" ​​können Sie keine Ausdrücke wie diese darstellen. –

+0

Es kommt nicht als String, das ist das Problem, also wie man es unter '' oder '' wirft oder einwickelt, ist die Frage –