Първата таблица
Накратко: pd.read_csv зарежда CSV файл в таблица (DataFrame), а head, shape, info и describe показват редовете, размера, типовете и обобщенията, преди да смяташ.
Проблем
„Колко поръчки имаме?“
Управителят ти праща orders.csv и пита колко поръчки има и каква е средната стойност. Изкушението е да отвориш файла, да напишеш mean() и да върнеш число.
Само че още не знаеш какво има във файла. Един ред поръчка ли е, или ред от поръчка? Има ли празни клетки? Числата числа ли са, или текст като „1,60 €“? Средна на грешна колона дава грешен отговор, който изглежда напълно сериозно.
Затова анализът започва с първи поглед: какво има в таблицата, преди да смяташ с нея.
Идеята
Таблицата: read_csv
CSV е текстов файл с таблица: първият ред е имената на колоните, а всеки следващ ред е един запис със стойности, разделени със запетая. Такъв файл дава почти всяка система: магазинът, банката, Excel.
pandas е библиотеката за таблици в Python. pd.read_csv чете файла и връща DataFrame: таблица с имена на колоните и номер на всеки ред вляво (това е индексът). head() показва първите пет реда:
import pandas as pd е навикът на всички: pandas се пише pd. Файлът orders.csv е до кода, заедно с другите таблици на магазина: products.csv, customers.csv, order_items.csv, categories.csv и reviews.csv.
Последният ред няма print, а таблицата пак излиза. Така работи бележникът (Jupyter), в който анализаторите пишат: стойността на последния ред се показва сама.
Идеята
Колко и какво: shape и info
shape е двойка (редове, колони). info() описва всяка колона: колко стойности има и от какъв тип са:
Прочети го отгоре надолу:
- 25 реда, 6 колони. Нито една колона не е съвсем празна.
category_idима 24 стойности от 25: на един продукт категорията липсва.- Типовете:
int64са цели числа,float64дробни,strтекст. Дататаadded_atе текст: pandas не познава сам, че е дата. Ще го научим.
По-точно, за любопитните
Типът str е новост на pandas 3 (2026). В по-старите версии и в много статии текстът е object. Значението е същото: колоната е от низове.
Идеята
Числата накратко: describe
describe() обобщава числовата колона: колко стойности има, средната (mean), разсейването (std), най-малката, най-голямата и трите четвъртини (25%, 50%, 75%):
Средната цена е 7,04 €, а 50% (медианата, цената по средата) е 2,80 €. Разликата е голяма: няколко скъпи продукта (ножовете за 39 €, тиганът за 24,90 €) дърпат средната нагоре. Ако кажеш на управителя, че „продуктът ни струва средно 7 €“, той ще си представи друг магазин.
Дали средната или медианата, ще решаваме в модула за статистика. Засега правилото е: виж и двете.
Виж го
Кой продукт няма категория
info() каза, че една категория липсва. Ето кой е продуктът:
Подаръчната карта не е храна и не е за дома. Липсата е истинска информация, а не грешка във файла. Наличността ѝ е 999: условно число, което значи „без ограничение“. Ако сумираш наличността на склада, тя ще изкриви резултата.
Ето това дава първият поглед: още преди първата сметка знаеш кое не е каквото изглежда.
Пробвай
Редовете на поръчките
Колко реда има order_items.csv и колко броя от продукт има средно на един ред? Запиши ги в rows и avg_qty.
Решение
import pandas as pd
items = pd.read_csv('order_items.csv')
rows = len(items)
avg_qty = items['quantity'].mean()rows = len(items) (152 реда) и avg_qty = items['quantity'].mean() (около 2,41 броя). items.shape е двойка (152, 4), затова не става за rows. Един ред тук е един продукт в една поръчка, а не цялата поръчка: поръчките са 60.
Упражнение
Най-новите поръчки
head() има брат: tail() показва последните редове. И двата приемат колко реда искаш: head(10).
Файлът с поръчките е подреден по дата. Запиши в latest последните 4 поръчки.
Решение
import pandas as pd
orders = pd.read_csv('orders.csv')
latest = orders.tail(4)
latestlatest = orders.tail(4): поръчки 57–60, от 5 до 19 октомври 2026 г. Две са нови, една е платена и една е изпратена. Най-новите още не са доставени, затова при въпроса „колко доставяме“ те ще изкривят числата, ако не ги отделиш.
По-точно, за любопитните
Файл, изнесен от български Excel, често е с точка и запетая между стойностите и със запетая в числата: 1,60. Тогава pd.read_csv('file.csv', sep=';', decimal=','). Кирилицата от стари програми понякога е в кодировка Windows-1251: encoding='cp1251'. Таблица от Excel се чете направо с pd.read_excel, а от база данни с pd.read_sql (виж курса Бази данни и SQL).
Тест
Провери се
Свързани уроци
Раздел „Свързани уроци“- Продължава в: Масивът на NumPy · Векторизация · Обобщения и липсващи стойности · Broadcasting: числото, редът и колоната
- Задачи по темата: Добре дошъл