Bosh sahifa Wiki Dataframe

Dataframe

Dataframerow va columnlardan iborat, har column ma’lum data type’ga ega bo‘lishi mumkin bo‘lgan ikki o‘lchovli ma’lumot tuzilmasi. U statistik hisoblash, data cleaning, tahlil, machine learning va ETL jarayonlarida ishlatiladi.

Dataframe spreadsheet yoki relational table’ga o‘xshaydi, ammo u dasturlash muhiti ichida filter, join, aggregation va transformation amallarini bajarish uchun mo‘ljallangan.

Row va column

Dataframe rowlari observation yoki recordlarni ifodalaydi.

Columnlar attribute yoki o‘lchovlarni ifodalaydi.

Misol:

id name age region
1 Farrukh 30 UZ
2 Ali 27 UZ

Har columnning type’i alohida bo‘lishi mumkin.

Schema

Dataframe schema quyidagilarni saqlaydi:

Type’lar:

  • integer;
  • floating point;
  • string;
  • boolean;
  • date;
  • timestamp;
  • category;
  • nested structure.

Schema aniq bo‘lsa xatolar erta aniqlanadi.

Index

Ayrim dataframe kutubxonalarida row index mavjud.

Index:

  • oddiy raqam;
  • sana;
  • unique key;
  • multi-level key

bo‘lishi mumkin.

Index relational database primary key bilan mutlaqo bir xil emas.

Takroriy index qiymatlariga ruxsat berilishi mumkin.

Column selection

Kerakli columnlar tanlanadi:

name, region

Bu projectionga o‘xshaydi.

Katta dataframe’da keraksiz columnlarni erta olib tashlash memory sarfini kamaytiradi.

Row filtering

Boolean shart orqali rowlar tanlanadi.

Misol:

age >= 18
region == "UZ"

Bir nechta shart operator precedence va null semantikasi bilan yoziladi.

Filter natijasi yangi dataframe yoki viewga o‘xshash obyekt bo‘lishi mumkin.

Vectorized operation

Column ustidagi amal har row uchun qo‘lda loop yozmasdan bajariladi.

Masalan:

total = price * quantity

Vectorized implementation compiled code yoki columnar memory orqali tez ishlaydi.

Row-by-row callback katta datasetda sekin bo‘lishi mumkin.

Missing value

Yo‘q qiymatlar:

  • null;
  • NaN;
  • None;
  • maxsus missing marker

bilan ifodalanishi mumkin.

Har type va library missing qiymatni boshqacha boshqaradi.

Amallar:

  • drop;
  • fill;
  • interpolate;
  • flag;
  • impute.

Missing qiymatni nolga almashtirish business ma’noni buzishi mumkin.

Type conversion

CSVdan o‘qilgan son string bo‘lib qolishi mumkin.

Type conversion:

  • integer;
  • decimal;
  • date;
  • category;
  • boolean

ga o‘tkazadi.

Invalid qiymatlar error, null yoki quarantinega yuboriladi.

Silent conversion noto‘g‘ri natija yaratishi mumkin.

Sorting

Bir yoki bir nechta column bo‘yicha sort qilinadi.

region ascending
amount descending

Barqaror sort teng keylar tartibini saqlashi mumkin.

Katta data sort uchun memory yoki disk spill talab qiladi.

Grouping

group byga o‘xshash amal rowlarni key bo‘yicha guruhlaydi.

Masalan:

region → total sales

Keyin:

  • sum;
  • count;
  • mean;
  • min;
  • max;
  • custom aggregate

bajariladi.

Join va merge

Ikki dataframe common key bo‘yicha birlashtiriladi.

Turlari:

  • inner;
  • left;
  • right;
  • outer.

Join key type’lari mos bo‘lishi kerak.

Duplicate keylar natijada rowlar sonini ko‘paytirishi mumkin.

Reshape

Data wide va long formatlar orasida o‘zgartiriladi.

Wide format

Har o‘lchov alohida column.

Long format

O‘lchov nomi va qiymati rowlarda.

Pivot va meltga o‘xshash amallar visualization hamda statistik model uchun kerakli shaklni yaratadi.

Apply

Custom function row yoki columnga qo‘llanishi mumkin.

Bu moslashuvchan, ammo vectorized operationga qaraganda sekinroq.

Apply ichida tashqi API yoki database query bajarish N+1 muammosi yaratadi.

Copy va view

Ba’zi operation data’ni nusxalaydi, boshqalari original bufferga view qaytaradi.

View ustidagi update original dataframe’ga ta’sir qilishi mumkin.

Copy-on-write yoki immutable model libraryga bog‘liq.

Memory profiling muhim.

Memory layout

Columnar dataframe har columnni contiguous memory’da saqlashi mumkin.

Bu:

  • vectorization;
  • compression;
  • CPU cache;
  • zero-copy interchange

uchun qulay.

String va object columnlar ko‘proq pointer va heap ishlatishi mumkin.

Lazy evaluation

Distributed dataframe tizimlari operationlarni darhol bajarmasdan execution graph yaratadi.

Action chaqirilganda optimizer:

bilan plan tuzadi.

Distributed dataframe

Data bitta kompyuter memory’siga sig‘masa partitionlarga bo‘linadi.

Operationlar workerlar orasida parallel bajariladi.

Join va group by shuffle talab qilishi mumkin.

Data skew bir workerga ortiqcha yuk beradi.

Input va output

Dataframe quyidagi formatlardan o‘qilishi mumkin:

Schema inference qulay, ammo katta file va aralash type’da noto‘g‘ri xulosa chiqarishi mumkin.

Production pipeline explicit schema ishlatadi.

Duplicate row

Dataframe ichida aynan bir xil yoki business key bo‘yicha takrorlangan rowlar bo‘lishi mumkin.

Deduplication oldidan qaysi row saqlanishi aniqlanadi:

  • eng yangi;
  • eng to‘liq;
  • eng ishonchli source;
  • birinchi kelgan.

Faqat barcha columnlar bo‘yicha duplicate olib tashlash business duplicate’ni topmasligi mumkin.

Chained assignment

Ayrim dataframe kutubxonalarida filter natijasiga update berish original data yoki vaqtinchalik nusxaga ta’sir qilishi noaniq bo‘lishi mumkin.

Explicit selection va assignment ishlatiladi.

Bu yashirin copy, kutilmagan o‘zgarmaslik va warninglarni kamaytiradi.

Export

Dataframe faylga yozilganda index, timezone, null, decimal va encoding qoidalari saqlanishi kerak.

CSV type metadata’sini yo‘qotadi, columnar format esa schema va compressionni yaxshiroq saqlashi mumkin.

Bog‘liq tushunchalar

Tabular data, Row, Column, Schema, Vectorization, Missing value, Group by, Join, Pivot, Dataset, Data analysis