पंडों में कैसे ठीक करें: नैनोसेकंड में टाइमस्टैम्प सीमा से बाहर


पांडा का उपयोग करते समय आपको एक त्रुटि का सामना करना पड़ सकता है:

 OutOfBoundsDatetime : Out of bounds nanosecond timestamp: 2300-01-10 00:00:00

यह त्रुटि तब होती है जब आप निम्न श्रेणी के बाहर टाइमस्टैम्प बनाने का प्रयास करते हैं:

 import pandas as pd

#display minimum timestamp allowed
print (pd. Timestamp . min )

1677-09-21 00:12:43.145224193

#display maximum timestamp allowed
print (pd. Timestamp . max )

2262-04-11 23:47:16.854775807

निम्नलिखित उदाहरण दिखाता है कि व्यवहार में इस त्रुटि को कैसे ठीक किया जाए।

त्रुटि को पुन: उत्पन्न कैसे करें

मान लीजिए कि हम पांडा में एक दिनांक सीमा बनाने का प्रयास कर रहे हैं जिसमें निम्नलिखित तीन तिथियां शामिल हैं:

  • 1/1/2020
  • 1/1/2150
  • 1/1/2300

हम इस दिनांक सीमा को बनाने का प्रयास करने के लिए date_range() फ़ंक्शन का उपयोग कर सकते हैं:

 import pandas as pd

#attempt to create date range
some_dates = pd. date_range (start=' 1/1/2000 ', end=' 1/1/2300 ', periods= 3 )

OutOfBoundsDatetime : Out of bounds nanosecond timestamp: 2300-01-10 00:00:00

हमें आउटऑफबाउंडडेटटाइम त्रुटि प्राप्त हो रही है क्योंकि टाइमस्टैम्प 1/1/2300 पांडा द्वारा अनुमत नैनोसेकंड में अधिकतम टाइमस्टैंप से अधिक है।

भले ही आप यूनिट के रूप में नैनोसेकंड का उपयोग करके टाइमस्टैम्प को संग्रहीत नहीं करना चाहते हैं, पांडा इसे स्वचालित रूप से करेंगे।

त्रुटि को कैसे ठीक करें

इस त्रुटि के आसपास काम करने का सबसे आसान तरीका त्रुटि = ‘जबरदस्ती’ तर्क का उपयोग करना है, जो न्यूनतम या अधिकतम सीमा के बाहर सभी टाइमस्टैम्प को NaT मानों के लिए मजबूर करता है।

उदाहरण के लिए, हम दिनांक सीमा बनाने के लिए निम्नलिखित कोड का उपयोग कर सकते हैं और स्वचालित रूप से अनुमत सीमा के बाहर सभी टाइमस्टैम्प को NaT मानों पर बाध्य कर सकते हैं:

 import pandas as pd

#create date range
some_dates = ['1/1/2000', '1/1/2150', '1/1/2300']

#convert date range to datetime and automatically coerce errors
some_dates = pd. to_datetime (some_dates, errors = ' coerce ')

#showdatetimes
print (some_dates)

DatetimeIndex(['2000-01-01', '2150-01-01', 'NaT'], dtype='datetime64[ns]', freq=None)

परिणाम तीन दिनांक समय मानों के साथ एक दिनांक सीमा है और अंतिम दिनांक समय NaT है क्योंकि यह पांडा द्वारा अनुमत अधिकतम मान से अधिक है।

ध्यान दें कि इस बार दिनांक सीमा बनाते समय हमें कोई त्रुटि नहीं प्राप्त होगी।

अतिरिक्त संसाधन

निम्नलिखित ट्यूटोरियल बताते हैं कि पायथन में अन्य सामान्य त्रुटियों को कैसे ठीक किया जाए:

कैसे ठीक करें: कॉलम ओवरलैप होते हैं लेकिन कोई प्रत्यय निर्दिष्ट नहीं किया जाता है
कैसे ठीक करें: ऑब्जेक्ट ‘numpy.ndarray’ में ‘append’ विशेषता नहीं है
कैसे ठीक करें: यदि आप सभी अदिश मानों का उपयोग करते हैं, तो आपको एक सूचकांक पारित करने की आवश्यकता है

एक टिप्पणी जोड़ने

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *