Barcha kurslar Yo'nalishlar Reyting Kirish Ro'yxatdan o'tish

Bu modulda Pandas’ning ikki tayanch obyekti — Series va DataFrame, ularga murojaat qilish usullari va yetishmayotgan qiymatlar bilan ishlash o’rganildi.

Pandas nima

Pandas — jadval ko’rinishidagi ma’lumotlar bilan ishlash kutubxonasi: CSV/Excel fayllarni o’qish, tozalash, filtrlash, guruhlash va tahlil qilish. U NumPy ustiga qurilgan — har bir ustun ichida NumPy massivi yotadi, shuning uchun NumPy’dagi vektorlashgan amallar va mask mantiqlari bu yerda ham amal qiladi.

import pandas as pd

Series — indeksli bir o’lchovli ma’lumot

Series listga o’xshaydi, lekin har bir elementning yorlig’i (indeksi) bor:

aholi = pd.Series([2.9, 1.1, 0.6],
                  index=["Toshkent", "Samarqand", "Buxoro"])
print(aholi["Toshkent"])
print(aholi.mean())

Natija:

2.9
1.5333333333333334

Indeks berilmasa, Pandas 0, 1, 2... raqamlarini o’zi qo’yadi. values — ichidagi NumPy massivi, index — yorliqlar.

DataFrame — jadval

DataFrame — ustunlari nomlangan 2 o’lchovli jadval; har bir ustun o’zi bir Series. Eng ko’p ishlatiladigan yaratish usuli — lug’atdan:

df = pd.DataFrame({
    "ism": ["Aziz", "Malika", "Jasur", "Nodira"],
    "yosh": [23, 31, 27, 19],
    "shahar": ["Toshkent", "Buxoro", "Toshkent", "Samarqand"],
})
print(df.head(2))

Natija:

      ism  yosh    shahar
0    Aziz    23  Toshkent
1  Malika    31    Buxoro

Jadval bilan tanishuvning uch buyrug’i: df.head() — dastlabki qatorlar, df.info() — ustunlar, turlari va bo’sh qiymatlar soni, df.describe() — son ustunlarning statistikasi. Real faylni o’qish: pd.read_csv("fayl.csv").

Bitta ustun — df["yosh"] (Series qaytadi). Ko’p uchraydigan xato: df["yosh", "shahar"] — ikki ustun uchun list ichida list kerak: df[["yosh", "shahar"]].

.loc va .iloc

Ikkalasi ham [qator, ustun] ko’rinishida ishlaydi, farqi — nimani indeks deb tushunishida:

.loc .iloc
Qator indeks yorlig’i bo’yicha pozitsiya (0, 1, 2...) bo’yicha
Ustun nomi bilan: "yosh" tartib raqami bilan: 1
Kesim 0:2 2 kiradi (yorliq oralig’i) 2 kirmaydi (Python odati)
df.loc[1, "ism"]        # 'Malika' — yorliq 1, ustun "ism"
df.iloc[1, 0]           # 'Malika' — 2-qator, 1-ustun
df.loc[df["yosh"] > 25, ["ism", "yosh"]]   # shart + ustunlar

Filtrlash yoki saralashdan keyin qator yorliqlari aralashib ketadi — ana shunda loc[0] "birinchi qator" degani EMASligi ayon bo’ladi: u yorlig’i 0 bo’lgan qatorni izlaydi. Pozitsiya kerak bo’lsa — doim iloc.

NaN: isna, dropna, fillna

Real ma’lumotda kataklar bo’sh qoladi — Pandas ularni NaN deb belgilaydi:

df.isna().sum()          # har ustunda nechta bo'sh qiymat
df.dropna()              # NaN bor qatorlarni tashlab yuboradi
df["yosh"].fillna(df["yosh"].mean())   # o'rtacha bilan to'ldirish

Ikki muhim odat. Birinchisi: dropna() ham, fillna() ham yangi DataFrame qaytaradi — natijani o’zgaruvchiga yozmasangiz (df = df.dropna()), asl jadval o’zgarmay qolaveradi. Ikkinchisi: NaN’ni == np.nan bilan tekshirib bo’lmaydi (NaN o’ziga ham teng emas!) — faqat isna() ishlatiladi.

Amaliyot

  1. 5 ta mahsulot nomi va narxidan Series yasang (nomlar — indeks); eng qimmatini idxmax() bilan toping.
  2. Yuqoridagi df jadvalini o’zingiz yozib, unga ball ustonini qo’shing va describe() natijasini o’qib bering.
  3. df.loc[1:2] va df.iloc[1:2] natijalarini chiqarib, nechta qator qaytganini tushuntiring.
  4. Jadvalning bitta katagiga None yozing (df.loc[2, "yosh"] = None), so’ng bo’sh qiymatni avval isna() bilan toping, keyin ustun o’rtachasi bilan to’ldiring.
  5. df[["ism", "shahar"]] va df["ism"] qaytargan obyektlarning turini type() bilan solishtiring.

Modul yakunida test bor — konspektdagi jadval va misollarni qayta ko’rib chiqing.

Asoslar — konspekt

Asoslar Maqola

Pandas asoslari konspekti: Series va DataFrame obyektlari, loc/iloc indekslash va NaN qiymatlar bilan ishlash — misollar bilan.

Eslatma yozish uchun saytga kiring.

Resurslar hozircha qo'shilmagan

O'qituvchi dars uchun qo'shimcha materiallarni qo'shganida shu yerda paydo bo'ladi.

Savol berish uchun saytga kiring.

Hozircha savollar yo'q

Bu dars yuzasidan birinchi savolni siz bering.