ပြုပြင်နည်း- တန်ဖိုးအမှား- na/nan တန်ဖိုးများပါရှိသော ဘူလီယန်မဟုတ်သော ခင်းကျင်းမှုကို ဖုံးကွယ်၍မရပါ။


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

 ValueError : Cannot mask with non-boolean array containing NA / NaN values

သီးခြားစာကြောင်းတစ်ခုပါရှိသော pandas DataFrame တွင် အတန်းများကိုရှာဖွေရန်ကြိုးစားနေချိန်တွင် ဤအမှားသည် များသောအားဖြင့် ဖြစ်ပေါ်တတ်သော်လည်း သင်ရှာဖွေနေသောကော်လံတွင် NaN တန်ဖိုးများရှိသည်။

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

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

ကျွန်ုပ်တို့တွင် အောက်ပါ ပန်ဒါ DataFrame ရှိသည် ဆိုပါစို့။

 import pandas as pd
import numpy as np

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'B', 'B'],
                   ' position ': ['Guard', 'Guard', np. nan , 'Guard', 'Forward'],
                   ' points ': [22, 28, 14, 13, 19]})

#view DataFrame
print (df)

  team position points
0 A Guard 22
1 A Guard 28
2 A NaN 14
3 B Guard 13
4 B Forward 19

ယခု အနေအထား ကော်လံတွင် “Guard” ဟူသော စာကြောင်းပါရှိသော DataFrame အတွင်းရှိ အတန်းအားလုံးကို ဝင်ရောက်ရန် ကြိုးစားသည်ဆိုပါစို့။

 #access all rows where position column contains 'Guard'
df[df[' position ']. str . contains (' Guard ')]

ValueError : Cannot mask with non-boolean array containing NA / NaN values

ရာထူး ကော်လံတွင် NaN တန်ဖိုး ရှိနေသောကြောင့် ကျွန်ုပ်တို့သည် အမှားအယွင်းတစ်ခု ရရှိပါသည်။

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

ဤအမှားကိုရှောင်ရှားရန်၊ str.contains() လုပ်ဆောင်ချက်ရှိ na=False အငြင်းအခုံကို ရိုးရှင်းစွာအသုံးပြုပါ။

 #access all rows where position column contains 'Guard', ignore NaN
df[df[' position ']. str . contains (' Guard ', na= False )]

        team position points
0 A Guard 22
1 A Guard 28
3 B Guard 13

ဤတစ်ကြိမ်တွင် ကျွန်ုပ်တို့သည် အမှားအယွင်းမရှိဘဲ ရာထူး ကော်လံတွင် “ Guard” ပါရှိသော အတန်းအားလုံးကို ဝင်ရောက်ကြည့်ရှုနိုင်ပါသည်။

ဤအမှားကို ရှောင်ရှားရန် အခြားနည်းလမ်းမှာ .fillna(False) ကို အောက်ပါအတိုင်း အသုံးပြုရန် ဖြစ်ပါသည်။

 #access all rows where position column contains 'Guard', ignore NaN
df[df[' position ']. str . contains (' Guard '). fillna ( False )]

        team position points
0 A Guard 22
1 A Guard 28
3 B Guard 13

တစ်ဖန် ကျွန်ုပ်တို့သည် အမှားအယွင်းမရှိဘဲ ရာထူး ကော်လံတွင် “ Guard” ပါ၀င်သော အတန်းအားလုံးကို ထပ်မံဝင်ရောက်ကြည့်ရှုနိုင်ပါသည်။

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

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

Pandas တွင် KeyError ကိုဘယ်လိုပြင်မလဲ။
ပြင်ဆင်နည်း- ValueError- float NaN ကို int အဖြစ်သို့ ပြောင်းလဲ၍မရပါ။
ပြုပြင်နည်း- တန်ဖိုးအမှား- Operands များကို ပုံသဏ္ဍာန်များဖြင့် ထုတ်လွှင့်၍မရပါ။

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

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