Search code examples
datetimepandastimezonepytz

Convert datetime to "Europe/Paris"


I have a data frame (df) with the following dateTime variable I have to convert this time format to "Europe/Paris"

dateTime  
2016-05-13 00:00:00
2016-06-14 00:00:01
2016-07-15 12:32:02
2016-05-16 02:34:10
2016-05-17 11:00:04

I have tried the following

import datetime,pytz

df['EUTime'] = None
df['EUTime'] = pytz.timezone("Europe/Paris").localize(df['dateTime'], is_dst=None)

AttributeError: 'Series' object has no attribute 'tzinfo'

Can someone help me?


Solution

  • You may need to convert to datetime dtype first, if so use pd.to_datetime:

    df['dateTime'] = pd.to_datetime(df['dateTime'])
    

    Then you can use dt.tz_localize:

    In [50]:
    s = s.dt.tz_localize("Europe/Paris")
    s
    
    Out[50]:
    0   2016-05-13 00:00:00+02:00
    1   2016-06-14 00:00:01+02:00
    2   2016-07-15 12:32:02+02:00
    3   2016-05-16 02:34:10+02:00
    4   2016-05-17 11:00:04+02:00
    Name: dateTime  , dtype: datetime64[ns, Europe/Paris]