Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk Menukar DateTimeIndex Panda Sedar Zon Waktu kepada Cap Waktu Naif Tanpa Menukar Zon Waktu?
Cara Menukar Pandasonic Time Zone-Aware DateTimeIndex kepada Cap Waktu Naif Semasa Memelihara Zon Waktu
Masalah:
Bagaimanakah anda boleh menukar cap Masa atau DateTimeIndex panda yang sedar zon waktu kepada yang naif tanpa mengubah suai zon waktunya?
Kod Asal:
Menggunakan tz = Tiada mengalih keluar zon waktu tetapi turut menukar masa kepada UTC:
<code class="python">t.tz = None</code>
Penyelesaian Cadangan:
Dari panda 0.15.0 dan seterusnya:
Gunakan tz_localize(Tiada) untuk mengalih keluar zon waktu, menghasilkan waktu tempatan yang naif:
<code class="python">t.tz_localize(None)</code>
Atau gunakan tz_convert(Tiada) untuk mengalih keluar zon waktu dan tukar kepada UTC:
<code class="python">t.tz_convert(None)</code>
Pra-pandas 0.15.0:
Gantikan maklumat zon waktu secara manual dengan Tiada menggunakan pemahaman senarai. Walau bagaimanapun, kaedah ini kurang cekap berbanding kaedah terbina dalam.
<code class="python">pd.DatetimeIndex([i.replace(tzinfo=None) for i in t])</code>
Contoh:
<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>
Output :
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')
Atas ialah kandungan terperinci Bagaimana untuk Menukar DateTimeIndex Panda Sedar Zon Waktu kepada Cap Waktu Naif Tanpa Menukar Zon Waktu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!