আমি মনে করি পাইথনের ডেটটাইম মডিউল, নম্পির ডেটটাইম /৪ / টাইমডেলটা p৪ এবং পান্ডসের টাইমস্ট্যাম্প / টাইমডেল্টা অবজেক্টের মধ্যে সম্পর্কের আরও ভালভাবে ব্যাখ্যা করার উত্তরে আরও একীভূত প্রচেষ্টা হতে পারে।
পাইথনের ডেটটাইম স্ট্যান্ডার্ড লাইব্রেরি
ডেটটাইম স্ট্যান্ডার্ড লাইব্রেরিতে চারটি প্রধান অবজেক্ট রয়েছে
- সময় - কেবলমাত্র সময়, ঘন্টা, মিনিট, সেকেন্ড এবং মাইক্রোসেকেন্ডে পরিমাপ করা হয়
- তারিখ - শুধুমাত্র বছর, মাস এবং দিন
- তারিখ সময় - সময় এবং তারিখের সমস্ত উপাদান
- টাইমডেল্টা - সর্বাধিক দিনের একক পরিমাণ সময়
এই চারটি অবজেক্ট তৈরি করুন
>>> import datetime
>>> datetime.time(hour=4, minute=3, second=10, microsecond=7199)
datetime.time(4, 3, 10, 7199)
>>> datetime.date(year=2017, month=10, day=24)
datetime.date(2017, 10, 24)
>>> datetime.datetime(year=2017, month=10, day=24, hour=4, minute=3, second=10, microsecond=7199)
datetime.datetime(2017, 10, 24, 4, 3, 10, 7199)
>>> datetime.timedelta(days=3, minutes = 55)
datetime.timedelta(3, 3300)
>>> # add timedelta to datetime
>>> datetime.timedelta(days=3, minutes = 55) + \
datetime.datetime(year=2017, month=10, day=24, hour=4, minute=3, second=10, microsecond=7199)
datetime.datetime(2017, 10, 27, 4, 58, 10, 7199)
NumPy এর তারিখের সময় 64 এবং টাইমডেলটা 64 অবজেক্ট
NumPy এর কোনও পৃথক তারিখ এবং সময় অবজেক্ট নেই, সময়টিতে একটি মুহুর্ত উপস্থাপনের জন্য কেবল একটি ডেটটাইম 64৪ টি অবজেক্ট। ডেটটাইম মডিউলটির ডেটটাইম অবজেক্টে মাইক্রোসেকেন্ড যথার্থতা (এক সেকেন্ডের দশ মিলিয়ন)। নুমপির ডেটটাইম 64৪ অবজেক্ট আপনাকে ঘন্টা থেকে পুরোপুরি অ্যাটিসেকেন্ডে (10 ^ -18) সেট করার জন্য অনুমতি দেয়। এটি নির্মাণকারী আরও নমনীয় এবং বিভিন্ন ইনপুট নিতে পারে।
NumPy এর তারিখের সময় 64 এবং টাইমডেলটা 64 অবজেক্টগুলি তৈরি করুন
ইউনিটগুলির জন্য একটি স্ট্রিং সহ একটি পূর্ণসংখ্যা পাস করুন। সমস্ত ইউনিট এখানে দেখুন । এটি UNIX যুগের পরে বহু ইউনিটে রূপান্তরিত হয়: 1 জানুয়ারি, 1970
>>> np.datetime64(5, 'ns')
numpy.datetime64('1970-01-01T00:00:00.000000005')
>>> np.datetime64(1508887504, 's')
numpy.datetime64('2017-10-24T23:25:04')
আপনি স্ট্রিংগুলি আইএসও 8601 ফর্ম্যাটে অবধি ব্যবহার করতে পারেন।
>>> np.datetime64('2017-10-24')
numpy.datetime64('2017-10-24')
টাইমডেল্টসের একটি ইউনিট রয়েছে
>>> np.timedelta64(5, 'D') # 5 days
>>> np.timedelta64(10, 'h') 10 hours
দুটি ডেটটাইম time৪ টি বস্তু বিয়োগ করে এগুলিও তৈরি করতে পারে
>>> np.datetime64('2017-10-24T05:30:45.67') - np.datetime64('2017-10-22T12:35:40.123')
numpy.timedelta64(147305547,'ms')
পান্ডাস টাইমস্ট্যাম্প এবং টাইমডেল্টা নুমপির উপরে আরও অনেকগুলি কার্যকারিতা তৈরি করে
একটি পান্ডাস টাইমস্ট্যাম্প সময়ের সাথে একটি মুহূর্ত যা ডেটটাইমের সাথে খুব অনুরূপ তবে আরও অনেক কার্যকারিতা সহ। আপনি এগুলির দ্বারা pd.Timestamp
বা অন্য কোনওটি নির্মাণ করতে পারেন pd.to_datetime
।
>>> pd.Timestamp(1239.1238934) #defautls to nanoseconds
Timestamp('1970-01-01 00:00:00.000001239')
>>> pd.Timestamp(1239.1238934, unit='D') # change units
Timestamp('1973-05-24 02:58:24.355200')
>>> pd.Timestamp('2017-10-24 05') # partial strings work
Timestamp('2017-10-24 05:00:00')
pd.to_datetime
খুব একইভাবে কাজ করে (আরও কয়েকটি বিকল্পের সাথে) এবং স্ট্রিংগুলির একটি তালিকা টাইমস্ট্যাম্পে রূপান্তর করতে পারে।
>>> pd.to_datetime('2017-10-24 05')
Timestamp('2017-10-24 05:00:00')
>>> pd.to_datetime(['2017-1-1', '2017-1-2'])
DatetimeIndex(['2017-01-01', '2017-01-02'], dtype='datetime64[ns]', freq=None)
পাইথনের ডেটটাইমকে ডেটটাইম 64 এবং টাইমস্ট্যাম্পে রূপান্তর করা
>>> dt = datetime.datetime(year=2017, month=10, day=24, hour=4,
minute=3, second=10, microsecond=7199)
>>> np.datetime64(dt)
numpy.datetime64('2017-10-24T04:03:10.007199')
>>> pd.Timestamp(dt) # or pd.to_datetime(dt)
Timestamp('2017-10-24 04:03:10.007199')
ন্যালি ডেটটাইম 64 কে ডেটটাইম এবং টাইমস্ট্যাম্পে রূপান্তর করা
>>> dt64 = np.datetime64('2017-10-24 05:34:20.123456')
>>> unix_epoch = np.datetime64(0, 's')
>>> one_second = np.timedelta64(1, 's')
>>> seconds_since_epoch = (dt64 - unix_epoch) / one_second
>>> seconds_since_epoch
1508823260.123456
>>> datetime.datetime.utcfromtimestamp(seconds_since_epoch)
>>> datetime.datetime(2017, 10, 24, 5, 34, 20, 123456)
টাইমস্ট্যাম্পে রূপান্তর করুন
>>> pd.Timestamp(dt64)
Timestamp('2017-10-24 05:34:20.123456')
টাইমস্ট্যাম্প থেকে তারিখের সময় এবং তারিখের সময় 64 এ রূপান্তর করুন
এটি বেশ সহজ কারণ পান্ডাস টাইমস্ট্যাম্পগুলি খুব শক্তিশালী
>>> ts = pd.Timestamp('2017-10-24 04:24:33.654321')
>>> ts.to_pydatetime() # Python's datetime
datetime.datetime(2017, 10, 24, 4, 24, 33, 654321)
>>> ts.to_datetime64()
numpy.datetime64('2017-10-24T04:24:33.654321000')
numpy
,pandas
সংস্করণ।