_UTC format
_に日付と時刻のデータがたくさんある場合、それらをEST
に変換するにはどうすればよいですか。
毎年自動的に-4(in summer)
および-5(in winter)
になるかどうかを判断できますか?ありがとう
pytz
モジュール(PyPIから入手可能)を使用する必要があります。
import pytz
from datetime import datetime
est = pytz.timezone('US/Eastern')
utc = pytz.utc
fmt = '%Y-%m-%d %H:%M:%S %Z%z'
winter = datetime(2016, 1, 24, 18, 0, 0, tzinfo=utc)
summer = datetime(2016, 7, 24, 18, 0, 0, tzinfo=utc)
print winter.strftime(fmt)
print summer.strftime(fmt)
print winter.astimezone(est).strftime(fmt)
print summer.astimezone(est).strftime(fmt)
印刷されます:
2016-01-24 18:00:00 UTC+0000
2016-07-24 18:00:00 UTC+0000
2016-01-24 13:00:00 EST-0500
2016-07-24 14:00:00 EDT-0400
'US/Eastern'
ではなく'EST'
を使用する必要がある理由は、最後の2行の出力に例示されています。
pandasオブジェクトデータ型のシリーズがある場合、最初に pd.to_datetime() を使用してそれをDateTimeシリーズに変換できます。
df[col] = pd.to_datetime(your_series, format = '%Y-%m-%d %H:%M:%S', errors ='coerce')
series.dt.tz を使用して、タイムゾーンに対応しているかどうかを確認します
df[col].dt.tz
タイムゾーンに対応していない場合は、 series.dt.tz_localize() を使用してタイムゾーンに対応させる必要があります。また、この関数のあいまいで存在しないパラメータについても読んでください
df[col] = your_series[col].dt.tz_localize('UTC')
series.dt.tz_convert() により、このシリーズを必要なタイムゾーンに変換します
df[col] = your_series[col].dt.tz_convert('US/Eastern')
上記の方法は夏時間を処理します。より多くのタイムゾーンを確認したい場合は、pytz install pytzおよび
import pytz
pytz.common_timezones