ทำความสะอาดข้อมูลด้วย Python และ Pandas
ข้อมูลเปรียบเสมือนองค์ประกอบสำคัญของการตัดสินใจในปัจจุบัน แต่ลองจินตนาการว่ามีกลุ่มบล็อกที่มีรูปร่างและขนาดต่างกันจากคอลเลกชันนี้ มันยากที่จะสร้างสิ่งที่มีความหมาย นี่คือจุดที่การล้างข้อมูลเข้ามาช่วย
คู่มือนี้จะสำรวจวิธีทำความสะอาดข้อมูลโดยใช้เฟรมเวิร์กของ Python ซึ่งเป็น Pandas เพื่อการตัดสินใจที่ดีขึ้น การทำความสะอาดข้อมูลก็เป็นสิ่งจำเป็นเช่นกัน เมื่อพิจารณาว่าเรากำลังทำงานกับรายการบันทึกการขายสำหรับร้านค้า เราอาจสังเกตเห็นตัวเลขที่หายไป วันที่แปลกๆ และรายการที่ซ้ำกันโดยไม่มีเหตุผลในรายการ หากเราทำการคำนวณหรือบันทึกตามข้อมูลนี้ ปัญหาเหล่านี้อาจทำให้การคำนวณและการคาดการณ์ของเรายุ่งเหยิงได้ การล้างข้อมูลช่วยแก้ไขปัญหาเหล่านี้ ทำให้มั่นใจได้ว่าข้อมูลของเราถูกต้องและพร้อมใช้งาน
การล้างข้อมูลรวมถึงการจัดการข้อมูลที่หายไปและสิ่งที่ต้องทำเมื่อข้อมูลบางส่วนหายไป การลบข้อมูลที่ซ้ำกัน การกำจัดสิ่งที่คัดลอก การแก้ไขประเภทข้อมูล ตรวจสอบให้แน่ใจว่าทุกอย่างอยู่ในรูปแบบที่เหมาะสม และการจัดการกับค่าผิดปกติหรือการจัดการตัวเลข ที่ไม่เข้ากัน ข้อผิดพลาดเหล่านี้ทำให้ข้อมูลดูเหมือนกันและทำให้ข้อมูลปรากฏเป็นมาตรฐาน
ในการเริ่มต้น ตรวจสอบให้แน่ใจก่อนว่าเราติดตั้ง Python และ Pandas แล้ว เราสามารถทำได้โดยพิมพ์คำสั่งในเทอร์มินัลของคอมพิวเตอร์หรือพรอมต์คำสั่ง หากต้องการใช้โค้ดที่กล่าวถึงในคู่มือนี้ เราอาจใช้ Python Pycharm IDE ที่ติดตั้งบนระบบของเราหรือแพลตฟอร์ม Python ออนไลน์ซึ่งก็คือ 'Google Colab' และติดตั้งคำสั่ง 'pip' เพื่อติดตั้งไลบรารีที่สำคัญ
ตอนนี้ มานำเข้า Pandas และโหลดข้อมูลตัวอย่างของเรากันดีกว่า ในตัวอย่างนี้ เราใช้ Google Colab เพื่อเรียกใช้โค้ด อันดับแรกเรานำเข้า Pandas โดยการป้อนคำสั่งต่อไปนี้:
! pip ติดตั้งแพนด้า
นำเข้า หมีแพนด้า เช่น พีดี
นำเข้า มากมาย เช่น เช่น.
จากนั้น เราโหลดชุดข้อมูลที่เราต้องการแสดงโดยใช้เมธอด pd.read() ซึ่งรับพาธของไฟล์เป็นพารามิเตอร์อินพุต
#โหลดชุดข้อมูลข้อมูล = พีดี. read_csv ( '/content/sample_data/california_housing_test.csv' )
# แสดงสองสามแถวแรก
พิมพ์ ( ข้อมูล. ศีรษะ ( ) )
ในตัวอย่างถัดไป เราใช้ข้อมูลเกี่ยวกับยอดขายในร้านค้าขนาดเล็ก เพื่อจัดการกับข้อมูลที่ขาดหายไป บางครั้งข้อมูลจึงขาดหายไปในข้อมูลของเรา เราเรียกส่วนที่ขาดหายไปเหล่านี้ว่า “น่าน” (ซึ่งแปลว่า “ไม่ใช่ตัวเลข”) ในการค้นหาค่าที่หายไปเหล่านี้ในสคริปต์ Python ขั้นแรกเราจะโหลดชุดข้อมูลเหมือนที่เราทำในตัวอย่างก่อนหน้านี้ จากนั้น เราจะค้นหาค่าที่หายไปในชุดข้อมูลโดยใช้ฟังก์ชัน “missing_values = data.isnull().sum()” ฟังก์ชันนี้ค้นหาค่าที่หายไปทั้งหมดในชุดข้อมูล จากนั้นเราแสดงผลโดยใช้ฟังก์ชันพิมพ์ ()
! pip ติดตั้งแพนด้านำเข้า หมีแพนด้า เช่น พีดี
นำเข้า มากมาย เช่น เช่น.
#โหลดชุดข้อมูล
ข้อมูล = พีดี. read_csv ( '/content/sample_data/california_housing_test.csv' )
# แสดงสองสามแถวแรก
พิมพ์ ( ข้อมูล. ศีรษะ ( ) )
#ตรวจสอบค่าที่หายไป
miss_values = ข้อมูล. เป็นโมฆะ ( ) . ผลรวม ( )
# แสดงค่าที่หายไปนับตามคอลัมน์
พิมพ์ ( miss_values )
หลังจากที่เราพบข้อมูลที่ขาดหายไปในแถวใดๆ ที่เรียกใช้โค้ดที่กล่าวถึงก่อนหน้านี้ เราสามารถลบแถวเหล่านั้นได้เนื่องจากแถวเหล่านั้นไม่มีข้อมูลที่เป็นประโยชน์มากนัก เรายังสามารถเดาค่าที่หายไปเหล่านั้นและเติมข้อมูลลงในช่องว่างด้วยการคาดเดาแบบมีการศึกษาโดยการประมาณข้อมูลตามเวลาตามจุดใกล้เคียง
ตอนนี้ เราจะลบรายการที่ซ้ำกันซึ่งเป็นสำเนาของสิ่งเดียวกัน เนื่องจากอาจทำให้การวิเคราะห์ของเราสับสนได้ ในการค้นหาค่าที่ซ้ำกันในชุดข้อมูล เราใช้ฟังก์ชัน “duplicate_rows = data[data.duplicated()]” หากต้องการลบค่าที่ซ้ำกันเหล่านี้ เราเรียกฟังก์ชัน data.drop_duplicates() เราสามารถค้นหาและลบออกได้โดยใช้รหัสต่อไปนี้:
! pip ติดตั้งแพนด้านำเข้า หมีแพนด้า เช่น พีดี
นำเข้า มากมาย เช่น เช่น.
#โหลดชุดข้อมูล
ข้อมูล = พีดี. read_csv ( '/content/sample_data/california_housing_test.csv' )
# แสดงสองสามแถวแรก
พิมพ์ ( ข้อมูล. ศีรษะ ( ) )
# ตรวจสอบแถวที่ซ้ำกัน
ซ้ำ_แถว = ข้อมูล [ ข้อมูล. ทำซ้ำ ( ) ]
#ลบรายการที่ซ้ำกัน
ข้อมูล = ข้อมูล. drop_duplicates ( )
# แสดงสองสามแถวแรกหลังจากลบรายการที่ซ้ำกัน
พิมพ์ ( ข้อมูล. ศีรษะ ( ) )
ชนิดข้อมูลจะกำหนดว่าข้อมูลใดที่สามารถจัดเก็บได้เพื่อแก้ไขประเภทข้อมูล จำเป็นต้องมีประเภทที่เหมาะสมสำหรับข้อมูลแต่ละประเภท ตัวอย่างเช่น วันที่ควรมีประเภทข้อมูลเป็นวันที่ เวลา และตัวเลขควรอยู่ในประเภทข้อมูล เช่น int, float เป็นต้น หากต้องการตรวจสอบประเภทข้อมูลของเรา เราใช้ฟังก์ชัน 'data.dtypes' สามารถใช้ฟังก์ชันนี้ได้ในลักษณะต่อไปนี้:
! pip ติดตั้งแพนด้านำเข้า หมีแพนด้า เช่น พีดี
นำเข้า มากมาย เช่น เช่น.
#โหลดชุดข้อมูล
ข้อมูล = พีดี. read_csv ( '/content/sample_data/california_housing_test.csv' )
# แสดงสองสามแถวแรก
พิมพ์ ( ข้อมูล. ศีรษะ ( ) )
# ตรวจสอบประเภทข้อมูลของแต่ละคอลัมน์
data_types = ข้อมูล. ประเภท
# แสดงประเภทข้อมูล
พิมพ์ ( data_types )
หากเราพบปัญหาใด ๆ เราสามารถเปลี่ยนประเภทข้อมูลโดยใช้ Pandas เช่น เราสามารถทำให้วันที่เป็นรูปแบบวันที่ได้ คุณลักษณะ “dtypes” ของ DataFrame ให้ข้อมูลเกี่ยวกับประเภทข้อมูลของแต่ละคอลัมน์ หากเราพบว่าประเภทข้อมูลไม่ตรงกัน เราสามารถใช้ฟังก์ชัน astype() ของ Pandas เพื่อแปลงคอลัมน์ให้เป็นประเภทที่ต้องการได้
หลังจากประเภทข้อมูลแล้ว บางครั้งเราพบค่าผิดปกติซึ่งเป็นค่าที่แตกต่างจากชนิดอื่นๆ มาก พวกมันอาจทำให้การคำนวณของเราผิดพลาดได้ เพื่อจัดการกับค่าผิดปกติ เรากำหนดฟังก์ชันที่ใช้ฟังก์ชัน z-score “np.abs(stats.zscore(data))” ซึ่งจะเปรียบเทียบค่าที่มีอยู่ในข้อมูลของเรากับค่าเกณฑ์ ค่าใดๆ นอกเหนือจากช่วงของเกณฑ์นี้ถือเป็นค่าผิดปกติ . มาดูวิธีค้นหาและจัดการกับค่าผิดปกติ:
! pip ติดตั้งแพนด้านำเข้า หมีแพนด้า เช่น พีดี
นำเข้า มากมาย เช่น เช่น.
#โหลดชุดข้อมูล
ข้อมูล = พีดี. read_csv ( '/content/sample_data/california_housing_test.csv' )
# แสดงสองสามแถวแรก
พิมพ์ ( ข้อมูล. ศีรษะ ( ) )
จาก เผ็ดร้อน นำเข้า สถิติ
แน่นอน ตรวจพบค่าผิดปกติ ( ข้อมูล ) : :
z_scores = เช่น. หน้าท้อง ( สถิติ zscore ( ข้อมูล ) )
กลับ เช่น. ที่ไหน ( z_scores > 3 )
# ตรวจจับและจัดการค่าผิดปกติในคอลัมน์ 'การขาย'
ค่าผิดปกติ = ตรวจพบค่าผิดปกติ ( ข้อมูล [ 'ลองจิจูด' ] )
ข้อมูล [ 'ลองจิจูด' ] . สถานที่ [ ค่าผิดปกติ ] = ข้อมูล [ 'ลองจิจูด' ] . ค่ามัธยฐาน ( )
# ตรวจจับและจัดการค่าผิดปกติในคอลัมน์ 'หน่วยที่ขาย'
ค่าผิดปกติ = ตรวจพบค่าผิดปกติ ( ข้อมูล [ 'ละติจูด' ] )
ข้อมูล [ 'ละติจูด' ] . สถานที่ [ ค่าผิดปกติ ] = ข้อมูล [ 'ละติจูด' ] . ค่ามัธยฐาน ( )
# แสดงสองสามแถวแรกหลังจากจัดการค่าผิดปกติ
พิมพ์ ( ข้อมูล. ศีรษะ ( ) )
เราใช้วิธีการง่ายๆ ในการค้นหาและแก้ไขค่าผิดปกติในโค้ดก่อนหน้า มันเกี่ยวข้องกับการแทนที่ค่าสุดขีดด้วยค่ากลางของข้อมูล โค้ดนี้ใช้วิธี Z-score เพื่อตรวจหาค่าผิดปกติในคอลัมน์ 'ลองจิจูด' และ 'ละติจูด' ของชุดข้อมูลของเรา ค่าผิดปกติจะถูกแทนที่ด้วยค่ามัธยฐานของคอลัมน์ที่เกี่ยวข้อง
เพื่อให้ข้อมูลดูเหมือนกัน บางครั้งข้อมูลอาจดูแตกต่างออกไปแม้ว่าจะหมายถึงสิ่งเดียวกันก็ตาม เช่น สามารถเขียนวันที่ได้ในรูปแบบต่างๆ การกำหนดมาตรฐานเกี่ยวข้องกับการรับรองรูปแบบข้อมูลและการเป็นตัวแทนที่สอดคล้องกัน ซึ่งอาจรวมถึงการจัดรูปแบบวันที่ การแปลงข้อความเป็นตัวพิมพ์เล็ก หรือการปรับค่าตัวเลขให้เป็นมาตรฐาน มาสร้างมาตรฐานให้กับคอลัมน์ 'วันที่' ในชุดข้อมูลของเรา และตรวจสอบให้แน่ใจว่าข้อมูลของเรามีลักษณะเหมือนกัน:
นำเข้า หมีแพนด้า เช่น พีดีนำเข้า มากมาย เช่น เช่น. #นำเข้าจำนวน
#โหลดข้อมูล
ข้อมูล = พีดี. read_csv ( 'sales_data.csv' )
# ทำให้คอลัมน์ 'วันที่' ดูสอดคล้องกัน
ข้อมูล [ 'วันที่' ] = พีดี. to_datetime ( ข้อมูล [ 'วันที่' ] )
#มาดูกันว่าตอนนี้เป็นยังไงบ้าง
พิมพ์ ( ข้อมูล. ศีรษะ ( ) )
ในตัวอย่างนี้ เรากำหนดมาตรฐานรูปแบบวันที่ในชุดข้อมูลให้เป็นรูปแบบวันที่และเวลาของ Python โดยใช้ฟังก์ชัน “pd.to_datetime(data['Date'])” การแปลงคอลัมน์ 'วันที่' เป็นรูปแบบเดียวกัน ช่วยให้ทำงานกับข้อมูลนี้ได้ง่ายขึ้น ผลลัพธ์จะแสดงสองสามแถวแรกของชุดข้อมูลพร้อมกับคอลัมน์ 'วันที่' ที่เป็นมาตรฐาน
บทสรุป
ในการเดินทางของเราผ่านการล้างข้อมูลโดยใช้ Python และ Pandas เราได้เรียนรู้วิธีปรับปรุงข้อมูลเพื่อการวิเคราะห์ เราเริ่มต้นด้วยการทำความเข้าใจว่าเหตุใดการล้างข้อมูลจึงมีความสำคัญมาก มันช่วยให้เราตัดสินใจได้ดีขึ้น เราได้สำรวจวิธีจัดการกับข้อมูลที่ขาดหายไป ลบข้อมูลที่ซ้ำกัน แก้ไขประเภทข้อมูล จัดการกับค่าผิดปกติ และทำให้ข้อมูลของเราดูเหมือนเดิม ด้วยทักษะเหล่านี้ เราจึงเตรียมพร้อมที่จะเปลี่ยนข้อมูลที่ยุ่งเหยิงให้กลายเป็นสิ่งที่เราเชื่อถือได้ และใช้เพื่อค้นหาข้อมูลที่สำคัญได้ การทำความสะอาดข้อมูลเป็นกระบวนการต่อเนื่อง เช่น การทำให้ห้องของเราเป็นระเบียบเรียบร้อย และทำให้เส้นทางการวิเคราะห์ข้อมูลของเราประสบความสำเร็จมากขึ้น