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 တန်ဖိုးများအားလုံးကို အသုံးပြုပါက၊ အညွှန်းတစ်ခုကို ကျော်သွားရန်လိုအပ်သည်။