วิทยาศาสตร์ข้อมูล - การเตรียมข้อมูล
ก่อนวิเคราะห์ข้อมูล Data Scientist ต้องดึงข้อมูลออกมา และทำให้ข้อมูลสะอาดและมีค่า
แยกและอ่านข้อมูลด้วย Pandas
ก่อนวิเคราะห์ข้อมูล จะต้องนำเข้า/แยกข้อมูลก่อน
ในตัวอย่างด้านล่าง เราจะแสดงวิธีการนำเข้าข้อมูลโดยใช้ Pandas ใน Python
เราใช้read_csv()
ฟังก์ชันเพื่อนำเข้าไฟล์ CSV พร้อมข้อมูลสุขภาพ:
ตัวอย่าง
import pandas as pd
health_data = pd.read_csv("data.csv", header=0, sep=",")
print(health_data)
ตัวอย่างที่อธิบาย
- นำเข้าห้องสมุด Pandas
- ตั้งชื่อ data frame เป็น
health_data
. header=0
หมายความว่าจะพบส่วนหัวของชื่อตัวแปรในแถวแรก (โปรดทราบว่า 0 หมายถึงแถวแรกใน Python)sep=","
หมายความว่า "," ถูกใช้เป็นตัวคั่นระหว่างค่าต่างๆ เนื่องจากเราใช้ไฟล์ประเภท .csv (ค่าที่คั่นด้วยเครื่องหมายจุลภาค)
เคล็ดลับ:หากคุณมีไฟล์ CSV ขนาดใหญ่ คุณสามารถใช้
head()
ฟังก์ชันเพื่อแสดงเฉพาะ 5 แถวบนสุดได้:
ตัวอย่าง
import pandas as pd
health_data = pd.read_csv("data.csv", header=0, sep=",")
print(health_data.head())
การล้างข้อมูล
ดูข้อมูลที่นำเข้า อย่างที่คุณเห็น ข้อมูลนั้น "สกปรก" โดยมีค่าผิดหรือไม่ได้ลงทะเบียน:
- มีช่องว่างอยู่บ้าง
- ชีพจรเฉลี่ยที่ 9,000 เป็นไปไม่ได้
- 9000 จะถือว่าเป็นตัวเลขที่ไม่ใช่ตัวเลข เนื่องจากตัวคั่นช่องว่าง
- การสังเกตชีพจรสูงสุดหนึ่งครั้งจะแสดงเป็น "AF" ซึ่งไม่สมเหตุสมผล
ดังนั้น เราต้องล้างข้อมูลเพื่อทำการวิเคราะห์
ลบแถวว่าง
เราเห็นว่าค่าที่ไม่ใช่ตัวเลข (9 000 และ AF) อยู่ในแถวเดียวกันกับค่าที่ขาดหายไป
วิธีแก้ไข: เราสามารถลบแถวที่ไม่มีข้อสังเกตเพื่อแก้ไขปัญหานี้ได้
เมื่อเราโหลดชุดข้อมูลโดยใช้ Pandas เซลล์ว่างทั้งหมดจะถูกแปลงเป็นค่า "NaN" โดยอัตโนมัติ
ดังนั้นการลบเซลล์ NaN จะทำให้เรามีชุดข้อมูลที่ชัดเจนที่สามารถวิเคราะห์ได้
เราสามารถใช้dropna()
ฟังก์ชันนี้เพื่อลบ NaNs axis=0 หมายความว่าเราต้องการลบแถวทั้งหมดที่มีค่า NaN:
ตัวอย่าง
health_data.dropna(axis=0,inplace=True)
print(health_data)
ผลลัพธ์คือชุดข้อมูลที่ไม่มีแถว NaN:
หมวดหมู่ข้อมูล
ในการวิเคราะห์ข้อมูล เราต้องรู้ประเภทของข้อมูลที่เราจัดการด้วย
ข้อมูลสามารถแบ่งออกเป็นสามประเภทหลัก:
- ตัวเลข - มีค่าตัวเลข สามารถแบ่งออกเป็นสองประเภท:
- ไม่ต่อเนื่อง: ตัวเลขจะถูกนับเป็น "ทั้งหมด" ตัวอย่าง: คุณไม่สามารถฝึก 2.5 เซสชั่น มันคือ 2 หรือ 3
- ต่อเนื่อง: ตัวเลขสามารถมีความแม่นยำไม่สิ้นสุด ตัวอย่างเช่น คุณสามารถนอนได้ 7 ชั่วโมง 30 นาที 20 วินาที หรือ 7.533 ชั่วโมง
- หมวดหมู่ - ประกอบด้วยค่าที่ไม่สามารถวัดกันได้ ตัวอย่าง: สีหรือประเภทของการฝึก
- ลำดับ - ประกอบด้วยข้อมูลหมวดหมู่ที่สามารถวัดกันได้ ตัวอย่าง: คะแนนของโรงเรียนที่ A ดีกว่า B เป็นต้น
เมื่อทราบประเภทข้อมูลของคุณแล้ว คุณจะสามารถทราบได้ว่าจะใช้เทคนิคใดในการวิเคราะห์ข้อมูลเหล่านั้น
ประเภทข้อมูล
เราสามารถใช้info()
ฟังก์ชันเพื่อแสดงรายการประเภทข้อมูลภายในชุดข้อมูลของเรา:
ตัวอย่าง
print(health_data.info())
ผลลัพธ์:
เราเห็นว่าชุดข้อมูลนี้มีข้อมูลสองประเภทที่แตกต่างกัน:
- Float64
- วัตถุ
เราไม่สามารถใช้อ็อบเจกต์ในการคำนวณและทำการวิเคราะห์ได้ที่นี่ เราต้องแปลงประเภทวัตถุเป็น float64 (float64 เป็นตัวเลขที่มีทศนิยมใน Python)
เราสามารถใช้astype()
ฟังก์ชันเพื่อแปลงข้อมูลเป็น float64
ตัวอย่างต่อไปนี้จะแปลง "Average_Pulse" และ "Max_Pulse" เป็นประเภทข้อมูล float64 (ตัวแปรอื่นๆ เป็นประเภทข้อมูล float64 อยู่แล้ว):
ตัวอย่าง
health_data["Average_Pulse"]
= health_data['Average_Pulse'].astype(float)
health_data["Max_Pulse"] =
health_data["Max_Pulse"].astype(float)
print
(health_data.info())
ผลลัพธ์:
ตอนนี้ชุดข้อมูลมีประเภทข้อมูล float64 เท่านั้น
วิเคราะห์ข้อมูล
เมื่อเราล้างชุดข้อมูลแล้ว เราก็เริ่มวิเคราะห์ข้อมูลได้
เราสามารถใช้describe()
ฟังก์ชันใน Python เพื่อสรุปข้อมูลได้:
ตัวอย่าง
print(health_data.describe())
ผลลัพธ์:
ระยะเวลา | ค่าเฉลี่ย_Pulse | Max_Pulse | แคลอรี่_เบิร์น | ชั่วโมง_ทำงาน | Hours_Sleep | |
---|---|---|---|---|---|---|
นับ | 10.0 | 10.0 | 10.0 | 10.0 | 10.0 | 10.0 |
หมายถึง | 51.0 | 102.5 | 137.0 | 285.0 | 6.6 | 7.5 |
มาตรฐาน | 10.49 | 15.4 | 11.35 | 30.28 | 3.63 | 0.53 |
นาที | 30.0 | 80.0 | 120.0 | 240.0 | 0.0 | 7.0 |
25% | 45.0 | 91.25 | 130.0 | 262.5 | 7.0 | 7.0 |
50% | 52.5 | 102.5 | 140.0 | 285.0 | 8.0 | 7.5 |
75% | 60.0 | 113.75 | 145.0 | 307.5 | 8.0 | 8.0 |
แม็กซ์ | 60.0 | 125.0 | 150.0 | 330.0 | 10.0 | 8.0 |
- นับ - นับจำนวนการสังเกต
- ค่าเฉลี่ย - มูลค่าเฉลี่ย
- Std - ส่วนเบี่ยงเบนมาตรฐาน (อธิบายไว้ในบทสถิติ)
- ต่ำสุด - ค่าต่ำสุด
- 25% , 50%และ75%เป็นเปอร์เซ็นไทล์ (อธิบายไว้ในบทสถิติ)
- สูงสุด - ค่าสูงสุด