Noto‘g‘ri formatni tozalash
Noto‘g‘ri formatdagi ma’lumotlar
Noto‘g‘ri formatdagi ma’lumotlarga ega kataklar ma’lumotlarni tahlil qilishni qiyinlashtirishi, hatto imkonsiz qilib qo‘yishi mumkin.
Buni tuzatishning ikki yo‘li bor: qatorlarni o‘chirish yoki ustunlardagi barcha kataklarni bir xil formatga o‘tkazish.
To‘g‘ri formatga o‘tkazish
DataFrame’imizda noto‘g‘ri formatdagi ikkita katak bor. 22- va 26-qatorlarga qarang: 'Date' ustuni sanani ifodalovchi string bo‘lishi kerak:
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
Keling, 'Date' ustunidagi barcha kataklarni sanaga o‘tkazib ko‘ramiz.
Buning uchun Pandas’da to_datetime() metodi bor:
Misol
Sanaga o‘tkazing:
import pandas as pd
df = pd.read_csv('data.csv')
df['Date'] = pd.to_datetime(df['Date'], format='mixed')
print(df.to_string())
O‘zingiz sinab ko‘ring »
Natija:
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
Natijadan ko‘rinib turibdiki, 26-qatordagi sana tuzatildi, ammo 22-qatordagi bo‘sh sana NaT (Not a Time) qiymatini, boshqacha aytganda, bo‘sh qiymatni oldi. Bo‘sh qiymatlar bilan ishlashning bir usuli — butun qatorni shunchaki o‘chirib tashlash.
Qatorlarni o‘chirish
Yuqoridagi misoldagi o‘tkazish natijasida NaT qiymati hosil bo‘ldi. Unga NULL qiymat sifatida qarash mumkin, shuning uchun qatorni dropna() metodi yordamida o‘chirib tashlashimiz mumkin.
Misol
"Date" ustunida NULL qiymati bo‘lgan qatorlarni o‘chiring:
df.dropna(subset=['Date'], inplace = True)
O‘zingiz sinab ko‘ring »
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
