ホームページ  >  記事  >  バックエンド開発  >  Pandas でタイムゾーン対応のタイムスタンプを単純な現地時間に変換する方法は?

Pandas でタイムゾーン対応のタイムスタンプを単純な現地時間に変換する方法は?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-05 02:05:01237ブラウズ

How to Convert a Timezone-Aware Timestamp to Naive Local Time in Pandas?

パンダでタイムゾーン対応のタイムスタンプを単純な現地時間に変換する方法

パンダでは、tz_localize 関数を使用してタイムスタンプを作成しますまたはタイムゾーンを認識する DateTimeIndex。ただし、すでにタイムゾーンを認識しているデータを扱う場合は、現地時間のタイムゾーン情報を保持しながら、データを単純なタイムスタンプに変換し直す必要がある場合があります。

1 つのオプションは、タイムゾーンを None に設定することです。 , ただし、これにより時間が UTC に変換されます。これを回避するために、pandas は tz_localize(None) 関数を提供します。この関数は、ローカル タイムゾーンでユーザーに表示される時間を維持しながら、タイムゾーン情報を効果的に削除します。

たとえば、次のタイムゾーンを考えてみましょう。 -aware DateTimeIndex:

t = pd.date_range(start="2013-05-18 12:00:00", periods=2, freq='H', tz="Europe/Brussels")

tz_localize(None) を使用すると、単純な現地時間に変換できます:

t_naive_local = t.tz_localize(None)

結果のインデックスは以前と同じ時刻になりますが、タイムゾーン情報なし:

t_naive_local

DatetimeIndex(['2013-05-18 12:00:00', '2013-05-18 13:00:00'],
               dtype='datetime64[ns]', freq='H')

さらに、pandas は、タイムゾーン情報を削除して時刻を UTC に変換する tz_convert(None) 関数も提供します。これにより、単純な UTC 時刻が得られます。

この変換は、次のタイミングで示されるように、datetime.replace メソッドを使用する別のアプローチよりも大幅に効率的です。

%timeit t.tz_localize(None)
1000 loops, best of 3: 233 µs per loop

%timeit pd.DatetimeIndex([i.replace(tzinfo=None) for i in t])
10 loops, best of 3: 99.7 ms per loop

これらの関数を活用することで、変換が簡単になります。タイムゾーンを認識したパンダのデータを単純な現地時間または UTC に変換し、ユーザーに表示される時間を維持し、データ処理の効率を高めます。

以上がPandas でタイムゾーン対応のタイムスタンプを単純な現地時間に変換する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。