পাইথন: টাইমডেল্টাকে ডেটাফ্রেমে রূপান্তর করুন


111

আমি একটি পান্ডাস ডেটা ফ্রেমে একটি কলাম তৈরি করতে চাই যা একটি টাইমডেল্টা কলামে দিনের সংখ্যার পূর্ণসংখ্যার উপস্থাপনা। 'ডেটটাইম.ডেস' ব্যবহার করা কি আমার আরও ম্যানুয়াল করার দরকার আছে?

টাইমডেল্টা কলাম

7 দিন, 23:29:00

দিন পূর্ণসংখ্যা কলাম

7


12
আপনি ব্যবহার করার চেষ্টা করেছেন timedelta.days?
Ffisegydd

উত্তর:


160

dt.daysবৈশিষ্ট্যটি ব্যবহার করুন । এর মাধ্যমে এই বৈশিষ্ট্যটি অ্যাক্সেস করুন:

timedelta_series.dt.days

আপনি একই উপায়ে secondsএবং microsecondsবৈশিষ্ট্যগুলি পেতে পারেন ।


11
সরলতার জন্য এবং অন্য লাইব্রেরির আমদানির প্রয়োজন না হওয়ার জন্য আমি এই মন্তব্যটি পছন্দ করি।
নিকব্রুনেজেল

67

আপনি এটি করতে পারতেন, tdআপনার টাইমল্টাসের সিরিজটি কোথায় where বিভাগটি ন্যানোসেকেন্ড ডেল্টাসকে ডে ডেল্টাসে রূপান্তর করে এবং পুরো দিনগুলিতে ইন্ট ড্রপগুলিতে রূপান্তর করে।

import numpy as np

(td / np.timedelta64(1, 'D')).astype(int)

1
ধন্যবাদ! আরও 15 মিনিটের অনুসন্ধানের পরেও আমি এটি খুঁজে পেয়েছি। stackoverflow.com/questions/18215317/…
আসফ হ্যানিশ

এর /মধ্যে tdআর npকী?
জেসন গোল

এটি টাইমডেলটা division৪ বিভাগ অপারেটর। 1 দিনের সময় ডেল্টা দিয়ে টিডি বিভক্ত করার ফলে টিডিতে প্রতিনিধিত্ব করা দিনের সংখ্যা (সম্ভবত ভগ্নাংশ) হয়। এই ক্ষেত্রে প্রয়োজন হয় না তবে এটি যদি সত্যিই কার্যকর হয় আপনি যদি 15 মিনিটের অন্তর অন্তর্ভুক্ত টিডিটি উপস্থাপন করতে চান তবে কাজ করতে চান
ডেভিড ওয়াটারওয়ার্থ

22

Timedelta বস্তু আছে শুধুমাত্র পাঠযোগ্য উদাহরণস্বরূপ বৈশিষ্ট্যাবলী .days, .secondsএবং .microseconds


6

যদি প্রশ্নটি না হয় "টাইমডেল্টার একটি পূর্ণসংখ্যা ফর্মটি কীভাবে অ্যাক্সেস করবেন?" তবে "ডেটাফ্রেমে টাইমডেল্টা কলামটি কীভাবে ইনটকে রূপান্তর করা যায়?" উত্তরটি কিছুটা আলাদা হতে পারে। .dt.daysঅ্যাক্সেসর ছাড়াও আপনার প্রয়োজন হয় df.astypeঅথবাpd.to_numeric

এই বিকল্পগুলির যে কোনও একটিতে সহায়তা করা উচিত:

df['tdColumn'] = pd.to_numeric(df['tdColumn'].dt.days, downcast='integer')

অথবা

df['tdColumn'] = df['tdColumn'].dt.days.astype('int16')

হাই, আমি এটি চেষ্টা করেছিলাম, তবে আমি ভ্যালু এরির পেয়েছি: অ-সীমাবদ্ধ মানগুলিকে (এনএ বা ইনফ) পূর্ণসংখ্যায় রূপান্তর করতে পারি না কারণ পান্ডাস সিরিজের ন্যান রয়েছে। আপনি কি জানেন কে এটিকে সাজান ???
পাব্লিটো

দ্বিতীয় বিকল্পটি আমার জন্য কাজ করেছিল এবং তারিখের মানগুলি টাইপ ছিল timedelta64[ns]। যদি আপনার তারিখগুলি NaN হয় তবে প্রথমে তাদেরকে পান্ডাস to_datetimeফাংশনটি ব্যবহার করে ডেটটাইমে রূপান্তর করুন , তারপরে উপরের দ্বিতীয় বিকল্পটি ব্যবহার করুন। বিস্তারিত জানার জন্য টু_ডেটটাইম
ওনেন সাইমন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.