Pandas - ဖော်မတ် မှားနေသော ဒေတာကို သန့်ရှင်းရေး လုပ်ခြင်း။
ဖော်မတ်မှားသော ဒေတာ
ဖော်မတ်မှားသော ဒေတာပါသည့် ဆဲလ်များသည် ဒေတာခွဲခြမ်းစိတ်ဖြာရန် ခက်ခဲ သို့မဟုတ် မဖြစ်နိုင်ပေ။
၎င်းကို ပြုပြင်ရန် သင့်တွင် ရွေးချယ်စရာ နှစ်ခုရှိသည်- အတန်းများကို ဖယ်ရှားရန် သို့မဟုတ် ကော်လံများရှိ ဆဲလ်အားလုံးကို တူညီသည့်ဖော်မတ်အဖြစ်သို့ ပြောင်းပါ။
မှန်ကန်သောပုံစံသို့ ပြောင်းပါ။
ကျွန်ုပ်တို့၏ဒေတာဘောင်တွင်၊ ကျွန်ုပ်တို့တွင် မှားယွင်းဖော်မတ်ရှိသော ဆဲလ်နှစ်ခုရှိသည်။ အတန်း 22 နှင့် 26 ကိုကြည့်ပါ၊ 'ရက်စွဲ' ကော်လံသည် ရက်စွဲကိုကိုယ်စားပြုသည့် စာကြောင်းဖြစ်သင့်သည်-
Duration Date Pulse Maxpulse Calories 0 60 '2020/12/01' 110 130 409.1 1 60 '2020/12/02' 117 145 479.0 2 60 '2020/12/03' 103 135 340.0 3 45 '2020/12/04' 109 175 282.4 4 45 '2020/12/05' 117 148 406.0 5 60 '2020/12/06' 102 127 300.0 6 60 '2020/12/07' 110 136 374.0 7 450 '2020/12/08' 104 134 253.3 8 30 '2020/12/09' 109 133 195.1 9 60 '2020/12/10' 98 124 269.0 10 60 '2020/12/11' 103 147 329.3 11 60 '2020/12/12' 100 120 250.7 12 60 '2020/12/12' 100 120 250.7 13 60 '2020/12/13' 106 128 345.3 14 60 '2020/12/14' 104 132 379.3 15 60 '2020/12/15' 98 123 275.0 16 60 '2020/12/16' 98 120 215.2 17 60 '2020/12/17' 100 120 300.0 18 45 '2020/12/18' 90 112 NaN 19 60 '2020/12/19' 103 123 323.0 20 45 '2020/12/20' 97 125 243.0 21 60 '2020/12/21' 108 131 364.2 22 45 NaN 100 119 282.0 23 60 '2020/12/23' 130 101 300.0 24 45 '2020/12/24' 105 132 246.0 25 60 '2020/12/25' 102 126 334.5 26 60 20201226 100 120 250.0 27 60 '2020/12/27' 92 118 241.0 28 60 '2020/12/28' 103 132 NaN 29 60 '2020/12/29' 100 132 280.0 30 60 '2020/12/30' 102 129 380.3 31 60 '2020/12/31' 92 115 243.0
'ရက်စွဲ' ကော်လံရှိ ဆဲလ်အားလုံးကို ရက်စွဲများအဖြစ် ပြောင်းလဲလိုက်ရအောင်။
Pandas တွင် to_datetime()
ဤအတွက်နည်းလမ်းတစ်ခုရှိသည်။
ဥပမာ
ရက်စွဲသို့ ပြောင်းရန်-
import pandas as pd
df = pd.read_csv('data.csv')
df['Date'] = pd.to_datetime(df['Date'])
print(df.to_string())
ရလဒ်:
Duration Date Pulse Maxpulse Calories 0 60 '2020/12/01' 110 130 409.1 1 60 '2020/12/02' 117 145 479.0 2 60 '2020/12/03' 103 135 340.0 3 45 '2020/12/04' 109 175 282.4 4 45 '2020/12/05' 117 148 406.0 5 60 '2020/12/06' 102 127 300.0 6 60 '2020/12/07' 110 136 374.0 7 450 '2020/12/08' 104 134 253.3 8 30 '2020/12/09' 109 133 195.1 9 60 '2020/12/10' 98 124 269.0 10 60 '2020/12/11' 103 147 329.3 11 60 '2020/12/12' 100 120 250.7 12 60 '2020/12/12' 100 120 250.7 13 60 '2020/12/13' 106 128 345.3 14 60 '2020/12/14' 104 132 379.3 15 60 '2020/12/15' 98 123 275.0 16 60 '2020/12/16' 98 120 215.2 17 60 '2020/12/17' 100 120 300.0 18 45 '2020/12/18' 90 112 NaN 19 60 '2020/12/19' 103 123 323.0 20 45 '2020/12/20' 97 125 243.0 21 60 '2020/12/21' 108 131 364.2 22 45 NaT 100 119 282.0 23 60 '2020/12/23' 130 101 300.0 24 45 '2020/12/24' 105 132 246.0 25 60 '2020/12/25' 102 126 334.5 26 60 '2020/12/26' 100 120 250.0 27 60 '2020/12/27' 92 118 241.0 28 60 '2020/12/28' 103 132 NaN 29 60 '2020/12/29' 100 132 280.0 30 60 '2020/12/30' 102 129 380.3 31 60 '2020/12/31' 92 115 243.0
ရလဒ်မှ သင်တွေ့မြင်ရသည့်အတိုင်း၊ အတန်း 26 ရှိ ရက်စွဲကို ပြင်ဆင်ထားသော်လည်း အတန်း 22 ရှိ အလွတ်ရက်စွဲသည် NaT (အချိန်မဟုတ်သော) တန်ဖိုးကို တစ်နည်းအားဖြင့် အလွတ်တန်ဖိုးတစ်ခု ရခဲ့သည်။ ဗလာတန်ဖိုးများကို ကိုင်တွယ်ဖြေရှင်းရန် နည်းလမ်းတစ်ခုမှာ အတန်းတစ်ခုလုံးကို ရိုးရှင်းစွာ ဖယ်ရှားခြင်းဖြစ်သည်။
လက်မှတ်ရယူပါ။
$10 စာရင်းသွင်းပါ။
အတန်းများကို ဖယ်ရှားခြင်း။
အထက်ဖော်ပြပါ ဥပမာတွင် ပြောင်းလဲခြင်းမှ ရလဒ်သည် ကျွန်ုပ်တို့အား NULL တန်ဖိုးအဖြစ် ကိုင်တွယ်နိုင်သည့် NaT တန်ဖိုးကို ပေးစွမ်းနိုင်ပြီး
dropna()
နည်းလမ်းကို အသုံးပြု၍ အတန်းကို ဖယ်ရှားနိုင်ပါသည်။
ဥပမာ
"ရက်စွဲ" ကော်လံရှိ NULL တန်ဖိုးဖြင့် အတန်းများကို ဖယ်ရှားပါ-
df.dropna(subset=['Date'], inplace = True)