2016-06-17 5 views
1

ich eine Datetime [ns] Spalte zu einer anderen Zeitzone an Umwandlung und die resultierende Spalte sieht wie folgt aus:Anfahrt Zeitinformationen aus datetime64 [ns] Offset

0 2011-05-25 20:30:00+02:00 
1 2011-05-24 20:30:00+02:00 
2 2011-05-20 20:30:00+02:00 
3 2011-05-19 20:30:00+02:00 
4 2011-05-15 13:30:00+02:00 

Ich versuche, den Offset zu ziehen Informationen, hier +02:00.

offset = converted.apply(lambda x: x.strftime('%z')) 

Aber es gibt mir eine leere Spalte.

Wenn die Spalte dtype == object/str ist, verschwinden die Offest-Informationen, sodass sie auch nicht mit Regex ausgegeben werden können.

Irgendwelche Ideen?

Antwort

1

Ich glaube, Sie brauchen strftime:

print (df) 
         date 
0 2011-05-25 20:30:00+02:00 
1 2011-05-24 20:30:00+02:00 
2 2011-05-20 20:30:00+02:00 
3 2011-05-19 20:30:00+02:00 
4 2011-05-15 13:30:00+02:00 

print (df.date.dt.tz) 
Europe/Bratislava 

df['timezone'] = df.date.dt.strftime('%z') 
print (df) 
         date timezone 
0 2011-05-25 20:30:00+02:00 +0200 
1 2011-05-24 20:30:00+02:00 +0200 
2 2011-05-20 20:30:00+02:00 +0200 
3 2011-05-19 20:30:00+02:00 +0200 
4 2011-05-15 13:30:00+02:00 +0200 

Wenn dtype von date Spalte ist object/string Verwendung indexing with str:

df['date'] = df.date.astype(str) 
df['timezone'] = df.date.str[-6:] 
print (df) 
         date timezone 
0 2011-05-25 20:30:00+02:00 +02:00 
1 2011-05-24 20:30:00+02:00 +02:00 
2 2011-05-20 20:30:00+02:00 +02:00 
3 2011-05-19 20:30:00+02:00 +02:00 
4 2011-05-15 13:30:00+02:00 +02:00