မိုးဇလ ကိန်းဂဏန်း ဒေတာဆက် ရှင်းလင်းခြင်း
ဒီ Post က Data Cleaning/Wrangling လုပ်သူတွေနဲ့ ပိုပြီး ဆီလျော်ပါလိမ့်မယ်။ တခြားလူတွေလည်း စိတ်ဝင်စားရင် အပျင်းပြေသဘောနဲ့ ဖတ်ရင် အဆင်ပြေပါလိ့မ်မယ်။
၁။ ဒီနေ့လယ်မှာ မိုးလေဝသနဲ့ ဇလဗေဒ အချက်အလက်တွေကို ရှင်းဖြစ်ပါတယ်။ ထုံးစံအတိုင်း Dataset ကို Timeseries တွက်ချက်မှုတွေ အတွက် လွယ်ကူအောင် ပြင်ဆင်ထားတာ မဟုတ်ဘဲ ရုံးသုံး ဇယားကွက် ပုံစံနဲ့ လုပ်ထားတဲ့ အတွက်ကြောင့် တိုင်ပတ်ပါတယ်။
၂။ ဥပမာ Excel File ထဲမှာ Sheet A, Sheet B, Sheet C ဆိုပြီး မတူညီတဲ့ အချက်အလက် သုံးမျိုးကို ခွဲထုတ်ထားတယ်။ ကဏ္ဍတစ်ခု (ဥပမာ မိုးရေချိန်) Sheet ထဲမှာလည်း နှစ်အလိုက် ဇယားကွက်ကို အထက်အောက် တန်းစီပြီး ပြထားတယ်။ ဒီတော့ကာ ကွန်ပြူတာစနစ်သုံး တွက်ချက်မှု တန်းလုပ်လို့ မရဘူး။
၃။ ကိုယ် ညဏ်နီညဏ်နက်နဲ့ ထုတ်ပြီး စဉ်းစားကြည့်တော့
၃-၁။ ပထမ အဆင့်မှာ ဒီ Excel တွေ အားလုံးကို CSV အဖြစ် ပြောင်းလဲပြီး သိမ်းလိုက်မယ်။ File တိုင်းမှာ Sheet သုံးခု ပါတတ်တော့ CSV File သုံးခု လုပ်ရမယ်။ ဥပမာ File_01_Sheet_A.csv, File_01_Sheet_B.csv, File_01_Sheet_C.csv … File_99_Sheet_A.csv, File_99_Sheet_B.csv, File_99_Sheet_C.csv စသဖြင့် လုပ်ရမယ်။ အသေ မှတ်လို့တော့ မရ။ တစ်ချို့ File တွေမှာ Sheet Name မတူတော့ File Name + Sheet Name + .csv နဲ့ လုပ်ရင် အဆင်ပြေ။ ဒါကလည်း ပြဿနာ ဖြစ်ပြီးမှ သိရတဲ့ အတွေ့အကြုံ။
၃-၂။ CSV တွေရဲ့ File Extension (.csv) ကို Text File (.txt) အဖြစ် ပြောင်းသိမ်းလိုက်မယ်။ ဒီလို ပြောင်းသိမ်းလို့ Data ဆုံးရှုံးမှု မဖြစ်ပါဘူး။
၃-၃။ ပြီးရင် Text File တွေကို ဖွင့်ပြီးတော့ Line Break ဖြစ်နေတာတွေကို ဖြုတ်ထုတ်၊ CSV Header/Columns ပြန် သတ်မှတ်ပြီး ပထမဆုံး Row မှာ ထည့်မယ်။
၃-၃-၁။ ကိုယ် ကံကောင်းသွားတဲ့ အချက်က Data တွေက ကွန်ပြူတာစနစ်သုံး တွက်ချက်မှု တန်းလုပ်လို့ မရပေမယ့် Consistency နည်းနည်းတော့ ရှိတယ်။ Data ရှိတဲ့ Rows တွေက 1,2,…,31 (ရက်ကို ကိုယ်စားပြုတဲ့ ဂဏန်း) တွေနဲ့ စတယ်။
၃-၃-၂။ ဒီတော့ကာ Regular Expression သုံးပြီးတော့ Data Rows မဟုတ်တဲ့ Rows တွေကို အလွယ်တကူ ဖတ်ထုတ်လို့ ရသွားတယ်။ နို့မဟုတ်ရင် တော်တော် တိုင်ပတ်မှာ။
၃-၃-၄။ CSV Header/Columns တပ်ပြီးသား၊ မလိုတဲ့ Row တွေ ဖြုတ်ပြီးသား Data ကို CSV File အသစ်တွေ အဖြစ် Output ပြန်ထုတ်လိုက်တယ်။
၃-၃-၅။ နောက် တစ်ဆင့်ကျမှ ဒီ ဒေသအလိုက် ဖွဲ့ထားတဲ့ CSV တွေကို ကဏ္ဍအလိုက် ပြန်ပေါင်းရတယ်။
၄။ Data တွေကို ပြန်ပေါင်းပြီးလို့ Data Type ပြန်ပြောင်းတော့ နောက်ထပ် အမှားတွေ ရှိတယ်။ ဥပမာ ၃၆.၂ ဒီဂရီ စင်တီဂရိတ်ကို လက်နဲ့ ရိုက်တော့ ၃.၆.၂ ဖြစ်နေတယ်။ ဘယ်မှာ စမှားသလဲ ဆိုတာကို ပြန်ရှာ၊ ပြန်ပြင်ပြီးမှ ရှင်းလို့ ရတယ်။
၅။ ဒါတင် မကသေးဘူး မိုးရေချိန်အချက်အလက် (Rainfall Data) ကို ရှင်းပြီးတဲ့နောက် Data Type ကို Float ဖြစ်အောင် ပြန်ပြောင်းတော့ Float Data Type ဖြစ်ရမယ့် Cell Values တွေမှာ “Trace” ဆိုတဲ့ စကားလုံး ရှိနေတဲ့ အတွက်ကြောင့် ပြောင်းလို့ မရ ဆိုပြီး တွေ့တယ်။ ဒါနဲ့ Trace တွေ ပြန်ရှာတော့ Data တွေ အထဲမှာ ထည့်ထားတာ အများကြီး။
၆။ နောက်ဆုံး Google လုပ်ကြည့်တော့မှ Trace ဆိုတာ မိုးတော့ ရွာတယ်၊ ဒါပေမယ့် ရွာတဲ့ ပမဏက သိပ် နည်းလွန်းတော့ တိုင်းတာလို့ မရဘူး ဆိုတာကို ပြောမှန်း တွေ့တယ်။ Trace ကို ဘယ်နှမျိုး ရေးထားသလဲ ဆိုတာ Screeshot ကို ကြည့်။

၇။ နောက်ဆုံး အားလုံး ကိစ္စပြီးပြီလို့ ယူဆတဲ့ အချိန်မှာ ပြန်စစ်တော့ Sheet Name တွေက Consistent မဖြစ်လို့ ပြဿနာ တက်နေတာ တွေ့ရတယ်။ ဒါကတော့ သိပ် ခက်ခဲတဲ့ ပြဿနာ မဟုတ်ပါဘူး။ ရေးပြီးသား Script တွေကို ပြန်ပြီး Update လုပ်ရင် ပြေလည် သွားမှာပါ။
ဘာကြောင့် ဒီ Note ကို ရေးသလဲ ဆိုရင် Real World Data ရှင်းလင်းရေးဟာ Kaggle က Dataset တွေကို လေ့ကျင့်ခန်း လုပ်သလို လွယ်ကူ မနေမှန်း လေ့လာခါစ လူငယ်တွေ သိအောင်နဲ့ အလားတူ ပြဿနာမျိုးနဲ့ ကြုံလာရင် ကွက်ကျော်ကွက်နင်း Bypass/Hack လုပ်ပြီး ရှင်းတာမျိုးကို ပြန်သုံးချင်သူတွေ သုံးလို့ ရအောင် ရေးတာပါပဲ။ ဘာ ကျေးဇူးမှ မတင်ပါနဲ့။