タイムゾーンを維持しながら Pandasonic のタイムゾーン対応 DateTimeIndex を単純なタイムスタンプに変換する方法
問題:
タイムゾーンを変更せずに、タイムゾーン対応のパンダの Timestamp または DateTimeIndex を単純なものに変換するにはどうすればよいですか?
元のコード:
tz = None を使用すると、タイムゾーンだけでなく、時刻を UTC にも変換します:
<code class="python">t.tz = None</code>
推奨される解決策:
pandas 0.15.0 以降:
tz_localize(None) を使用してタイムゾーンを削除すると、単純な現地時間になります:
<code class="python">t.tz_localize(None)</code>
または、tz_convert(None) を使用してタイムゾーンを削除して UTC に変換します:
<code class="python">t.tz_convert(None)</code>
Prepandas 0.15.0:
リスト内包表記を使用して、タイムゾーン情報を手動で None に置き換えます。ただし、このメソッドは組み込みメソッドよりも効率が低くなります。
<code class="python">pd.DatetimeIndex([i.replace(tzinfo=None) for i in t])</code>
例:
<code class="python">t = pd.date_range(start="2013-05-18 12:00:00", periods=2, freq='H', tz="Europe/Brussels") # Using 'tz_localize(None)' t_naive_local = t.tz_localize(None) # Using 'tz_convert(None)' t_naive_utc = t.tz_convert(None) print(t_naive_local) print(t_naive_utc)</code>
出力:
DatetimeIndex(['2013-05-18 12:00:00', '2013-05-18 13:00:00'], dtype='datetime64[ns]', freq='H') DatetimeIndex(['2013-05-18 10:00:00', '2013-05-18 11:00:00'], dtype='datetime64[ns]', freq='H')
以上がタイムゾーンを変更せずにタイムゾーン対応の Pandas DateTimeIndex を単純なタイムスタンプに変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。