আপনি tz_localize
টাইমস্ট্যাম্প বা ডেটটাইম ইন্ডেক্সের সময় অঞ্চলকে সচেতন করতে ফাংশনটি ব্যবহার করতে পারেন তবে আপনি বিপরীতে কীভাবে করতে পারেন: আপনি কীভাবে টাইমজোন সচেতন টাইমস্ট্যাম্পকে একটি নির্দোষে রূপান্তর করতে পারবেন, তার সময়সীমা সংরক্ষণের মাধ্যমে?
একটি উদাহরণ:
In [82]: t = pd.date_range(start="2013-05-18 12:00:00", periods=10, freq='s', tz="Europe/Brussels")
In [83]: t
Out[83]:
<class 'pandas.tseries.index.DatetimeIndex'>
[2013-05-18 12:00:00, ..., 2013-05-18 12:00:09]
Length: 10, Freq: S, Timezone: Europe/Brussels
আমি টাইমজোনটিকে কোনওটিতে সেট করে সরিয়ে ফেলতে পারতাম, তবে তারপরে ফলাফলটি ইউটিসিতে রূপান্তরিত হয় (12 টা বাজে 10 হয়ে যায়):
In [86]: t.tz = None
In [87]: t
Out[87]:
<class 'pandas.tseries.index.DatetimeIndex'>
[2013-05-18 10:00:00, ..., 2013-05-18 10:00:09]
Length: 10, Freq: S, Timezone: None
আমি কি ডেটটাইম ইন্ডেক্সকে টাইমজোন भोঁদে রূপান্তর করতে পারি, তবে টাইমজোনটি সংরক্ষণ করার সময় এটি সেট করা আছে কি অন্য উপায় আছে?
আমি এটি জিজ্ঞাসা করার কারণ সম্পর্কে কিছু প্রসঙ্গ : আমি টাইমজোন নিখুঁত টাইমসারিগুলির সাথে কাজ করতে চাই (টাইমজোনগুলির সাথে অতিরিক্ত ঝামেলা এড়াতে এবং আমি যে মামলায় কাজ করছি তার জন্য তাদের দরকার নেই)।
তবে কিছু কারণে, আমাকে আমার স্থানীয় সময় অঞ্চল (ইউরোপ / ব্রাসেলস) এর একটি সময় অঞ্চল-সচেতন টাইমসিরিজগুলি মোকাবেলা করতে হবে। যেহেতু আমার সমস্ত অন্যান্য ডেটা টাইমজোন নিখুঁত (তবে এটি আমার স্থানীয় টাইমজোনটিতে উপস্থাপিত), তাই আমি এই টাইমসারিগুলিকে এটিকে আরও কাজ করতে নিখরচায় রূপান্তর করতে চাই, তবে এটি আমার স্থানীয় টাইমজোনতেও উপস্থাপন করতে হবে (তাই কেবল টাইমজোন তথ্য সরিয়ে ফেলুন, ব্যবহারকারী-দৃশ্যমান সময়টিকে ইউটিসি তে রূপান্তর না করে )।
আমি জানি সময়টি আসলে ইউটিসি হিসাবে অভ্যন্তরীণভাবে সঞ্চিত থাকে এবং আপনি যখন এটি উপস্থাপন করেন কেবল তখনই অন্য টাইমজোনতে রূপান্তরিত হয়, সুতরাং যখন আমি এটি "নতুন করে" তৈরি করতে চাই তখন এক ধরণের রূপান্তর থাকতে হবে। উদাহরণস্বরূপ, পাইথনের ডেটটাইম মডিউল দিয়ে আপনি টাইমজোনকে এইভাবে "অপসারণ" করতে পারেন:
In [119]: d = pd.Timestamp("2013-05-18 12:00:00", tz="Europe/Brussels")
In [120]: d
Out[120]: <Timestamp: 2013-05-18 12:00:00+0200 CEST, tz=Europe/Brussels>
In [121]: d.replace(tzinfo=None)
Out[121]: <Timestamp: 2013-05-18 12:00:00>
সুতরাং, এর ভিত্তিতে, আমি নিম্নলিখিতগুলি করতে পারতাম, তবে আমি মনে করি বৃহত্তর টাইমসারিগুলির সাথে কাজ করার সময় এটি খুব কার্যকর হবে না:
In [124]: t
Out[124]:
<class 'pandas.tseries.index.DatetimeIndex'>
[2013-05-18 12:00:00, ..., 2013-05-18 12:00:09]
Length: 10, Freq: S, Timezone: Europe/Brussels
In [125]: pd.DatetimeIndex([i.replace(tzinfo=None) for i in t])
Out[125]:
<class 'pandas.tseries.index.DatetimeIndex'>
[2013-05-18 12:00:00, ..., 2013-05-18 12:00:09]
Length: 10, Freq: None, Timezone: None