In [1]:
import pandas as pd
In [2]:
s = '2018-01-01T12:00+09:00'
print(s)
In [3]:
print(type(s))
In [4]:
ts = pd.to_datetime(s)
print(ts)
In [5]:
print(type(ts))
In [6]:
print(ts.tz)
In [7]:
ts_utc = pd.to_datetime(s, utc=True)
print(ts_utc)
In [8]:
print(ts_utc.tz)
In [9]:
s_without_tz = '2018-01-01T12:00'
In [10]:
ts_naive = pd.to_datetime(s_without_tz)
print(ts_naive)
In [11]:
print(ts_naive.tz)
In [12]:
ts_set_utc = pd.to_datetime(s_without_tz, utc=True)
print(ts_set_utc)
In [13]:
print(ts_set_utc.tz)
In [14]:
print(ts_utc)
In [15]:
print(ts_utc.tz)
In [16]:
ts_jst = ts_utc.tz_convert('Asia/Tokyo')
print(ts_jst)
In [17]:
print(ts_jst.tz)
In [18]:
print(ts_utc.value)
In [19]:
print(ts_jst.value)
In [20]:
print(ts_utc == ts_jst)
In [21]:
ts_pst = ts_utc.tz_convert('US/Pacific')
print(ts_pst)
In [22]:
print(ts_pst.tz)
In [23]:
print(ts_utc.tz_convert('America/Los_Angeles'))
In [24]:
print(ts_utc.tz_convert('America/Vancouver'))
In [25]:
print(ts_naive)
In [26]:
print(ts_naive.tz)
In [27]:
# print(ts_naive.tz_convert('Asia/Tokyo'))
# TypeError: Cannot convert tz-naive Timestamp, use tz_localize to localize
In [28]:
ts_jst_localize = ts_naive.tz_localize('Asia/Tokyo')
print(ts_jst_localize)
In [29]:
print(ts_jst_localize.tz)
In [30]:
print(ts_naive.tz_localize('US/Pacific'))
In [31]:
print(ts_naive.tz_localize('Asia/Tokyo') == ts_naive.tz_localize('US/Pacific'))
In [32]:
print(ts_jst)
In [33]:
print(ts_jst.tz)
In [34]:
# print(ts_jst.tz_localize('US/Pacific'))
# TypeError: Cannot localize tz-aware Timestamp, use tz_convert for conversions
In [35]:
print(ts_jst)
In [36]:
print(ts_jst.tz)
In [37]:
print(ts_jst.tz_convert(None))
In [38]:
print(ts_jst.tz_localize(None))
In [39]:
df = pd.DataFrame({'date': ['2018-01-01T12:00',
'2018-01-02T00:00',
'2018-01-03T10:00',
'2018-01-03T19:00'],
'value': ['A', 'B', 'C', 'D']})
In [40]:
print(df)
In [41]:
s_naive = pd.to_datetime(df['date'])
print(s_naive)
In [42]:
print(s_naive[0])
In [43]:
print(type(s_naive[0]))
In [44]:
print(s_naive[0].tz)
In [45]:
s_utc = pd.to_datetime(df['date'], utc=True)
print(s_utc)
In [46]:
print(s_utc[0].tz)
In [47]:
# print(s_naive.tz_localize('Asia/Tokyo'))
# TypeError: index is not a valid DatetimeIndex or PeriodIndex
In [48]:
# print(s_utc.tz_convert('Asia/Tokyo'))
# TypeError: index is not a valid DatetimeIndex or PeriodIndex
In [49]:
print(s_naive.dt.tz_localize('Asia/Tokyo'))
In [50]:
print(s_utc.dt.tz_convert('Asia/Tokyo'))
In [51]:
# print(s_naive.dt.tz_convert('Asia/Tokyo'))
# TypeError: Cannot convert tz-naive timestamps, use tz_localize to localize
In [52]:
# print(s_utc.dt.tz_localize('Asia/Tokyo'))
# TypeError: Already tz-aware, use tz_convert to convert.
In [53]:
# print(df['date'].dt.tz_localize('Asia/Tokyo'))
# AttributeError: Can only use .dt accessor with datetimelike values
In [54]:
df['date'] = pd.to_datetime(df['date'])
df_ts = df.set_index('date')
print(df_ts)
In [55]:
print(df_ts.index)
In [56]:
print(type(df_ts.index))
In [57]:
print(df_ts['2018-01-03'])
In [58]:
print(df_ts.index.tz_localize('Asia/Tokyo'))
In [59]:
print(df_ts.tz_localize('Asia/Tokyo'))
In [60]:
s_ts = df_ts['value']
print(s_ts)
In [61]:
print(s_ts.tz_localize('Asia/Tokyo'))
In [62]:
df = pd.DataFrame({'date': ['2018-01-01T12:00+09:00',
'2018-01-02T00:00+09:00',
'2018-01-03T10:00+09:00',
'2018-01-03T19:00+09:00'],
'value': ['A', 'B', 'C', 'D']})
In [63]:
print(df)
In [64]:
print(pd.to_datetime(df['date']))
In [65]:
print(pd.to_datetime(df['date'], utc=True))
In [66]:
print(pd.to_datetime(df['date']).dt.tz_convert('US/Pacific'))
In [67]:
df['date'] = pd.to_datetime(df['date'])
df_ts = df.set_index('date')
print(df_ts)
In [68]:
print(df_ts.index)
In [69]:
print(df_ts.tz_convert('US/Pacific'))
In [70]:
df = pd.DataFrame({'date': ['2018-01-01T12:00+09:00',
'2018-01-02T00:00+09:00',
'2018-01-03T10:00-05:00',
'2018-01-03T19:00-08:00'],
'value': ['A', 'B', 'C', 'D']})
In [71]:
print(df)
In [72]:
print(pd.to_datetime(df['date']))
In [73]:
print(type(pd.to_datetime(df['date'])[0]))
In [74]:
print(pd.to_datetime(df['date'])[0].tzinfo)
In [75]:
print(pd.to_datetime(df['date'])[2].tzinfo)
In [76]:
print(pd.to_datetime(df['date'], utc=True))
In [77]:
print(type(pd.to_datetime(df['date'], utc=True)[0]))
In [78]:
# print(pd.to_datetime(df['date']).dt.tz_convert('Asia/Tokyo'))
# ValueError: Tz-aware datetime.datetime cannot be converted to datetime64 unless utc=True
In [79]:
df['date'] = pd.to_datetime(df['date'])
df_dt = df.set_index('date')
print(df_dt)
In [80]:
print(df_dt.index)
In [81]:
# print(df_dt.tz_convert('Asia/Tokyo'))
# TypeError: index is not a valid DatetimeIndex or PeriodIndex
In [82]:
# print(df_dt.tz_localize('Asia/Tokyo'))
# TypeError: index is not a valid DatetimeIndex or PeriodIndex