Pandas တွင် ပြုပြင်နည်း- အကွာအဝေးပြင်ပ နာနိုစက္ကန့်များတွင် အချိန်တံဆိပ်ရိုက်နှိပ်ပါ။


ပန်ဒါများကို အသုံးပြုရာတွင် သင်ကြုံတွေ့ရနိုင်သည့် အမှားတစ်ခုမှာ-

 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

အောက်ဖော်ပြပါ ဥပမာသည် ဤအမှားကို လက်တွေ့တွင် မည်သို့ပြုပြင်ရမည်ကို ပြသထားသည်။

အမှားကို ဘယ်လိုပြန်ထုတ်မလဲ။

အောက်ပါရက်စွဲသုံးရက်ပါရှိသော ပန်ဒါများတွင် ရက်အပိုင်းအခြားတစ်ခုကို ဖန်တီးရန် ကြိုးစားနေသည်ဆိုပါစို့။

  • ၁/၁/၂၀၂၀
  • ၁/၁/၂၁၅၀
  • ၁/၁/၂၃၀၀

ဤရက်စွဲအပိုင်းအခြားကို ဖန်တီးရန် ကျွန်ုပ်တို့သည် 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 သည် ပန်ဒါများခွင့်ပြုထားသော နာနိုစက္ကန့်အတွင်း အမြင့်ဆုံးအချိန်တံဆိပ်ထက် ပိုကြီးသောကြောင့် OutOfBoundsDatetime အမှားကို ကျွန်ုပ်တို့ လက်ခံရရှိနေပါသည်။

ယူနစ်အဖြစ် နာနိုစက္ကန့်ကို အသုံးပြု၍ အချိန်တံဆိပ်ကို မသိမ်းဆည်းလိုပါက ပန်ဒါများက အလိုအလျောက် လုပ်ဆောင်ပေးမည်ဖြစ်သည်။

အမှားကိုဘယ်လိုပြင်မလဲ။

ဤအမှားအတွက် အလွယ်ဆုံးနည်းလမ်းမှာ NaT တန်ဖိုးများသို့ အနိမ့်ဆုံး သို့မဟုတ် အမြင့်ဆုံးအချိန်အကွာအဝေးအပြင် အချိန်တံဆိပ်အားလုံးကို အတင်းအကျပ်ဖြစ်စေသည့် error = ‘coerce’ argument ကို အသုံးပြုခြင်းဖြစ်သည်။

ဥပမာအားဖြင့်၊ ရက်အပိုင်းအခြားတစ်ခုဖန်တီးရန် ကျွန်ုပ်တို့သည် အောက်ပါကုဒ်ကို အသုံးပြုနိုင်ပြီး ခွင့်ပြုထားသည့် အပိုင်းအခြားပြင်ပရှိ အချိန်တံဆိပ်အားလုံးကို 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)

ရလဒ်သည် datetime တန်ဖိုး သုံးခုပါသည့် ရက်စွဲအပိုင်းအခြားဖြစ်ပြီး နောက်ဆုံးရက်စွဲအချိန်သည် NaT ဖြစ်သောကြောင့် ပန်ဒါများကခွင့်ပြုသည့်အမြင့်ဆုံးတန်ဖိုးကိုကျော်လွန်သွားသောကြောင့်ဖြစ်သည်။

ရက်စွဲအပိုင်းအခြားကို ဖန်တီးသောအခါတွင် ကျွန်ုပ်တို့သည် မည်သည့်အမှားအယွင်းမျှ မရရှိကြောင်း သတိပြုပါ။

ထပ်လောင်းအရင်းအမြစ်များ

အောက်ဖော်ပြပါ သင်ခန်းစာများသည် Python ရှိ အခြားသော ဘုံအမှားများကို မည်သို့ပြင်ဆင်ရမည်ကို ရှင်းပြသည်-

ပြုပြင်နည်း- ကော်လံများ ထပ်နေသော်လည်း နောက်ဆက်တွဲကို သတ်မှတ်မထားပါ။
ပြုပြင်နည်း- Object ‘numpy.ndarray’ တွင် ‘append’ attribute မရှိပါ။
ပြင်ဆင်နည်း- scalar တန်ဖိုးများအားလုံးကို အသုံးပြုပါက၊ အညွှန်းတစ်ခုကို ကျော်သွားရန်လိုအပ်သည်။

မှတ်ချက်တစ်ခုထည့်ပါ။

သင့် email လိပ်စာကို ဖော်ပြမည် မဟုတ်ပါ။ လိုအပ်သော ကွက်လပ်များကို * ဖြင့်မှတ်သားထားသည်