Шпаргалка "Основы работы с датасетами в Pandas"
0) Установка и импорт
!pip install pandas numpy import pandas as pd import numpy as np
1) Загрузка и сохранение данных
# CSV-файл df = pd.read_csv("data.csv") # загрузить df.to_csv("data_clean.csv", index=False) # сохранить # Excel df = pd.read_excel("data.xlsx", sheet_name=0) df.to_excel("out.xlsx", index=False) # JSON (если построчно — указываем lines=True) df = pd.read_json("data.json")
2) Первичное знакомство с таблицей
df.head() # первые строки df.tail() # последние строки df.shape # (строки, столбцы) df.columns # имена столбцов df.info() # типы данных и пропуски df.describe() # простая статистика по числам
3) Выбор столбцов и строк
# один/несколько столбцов df["price"] # Series df[["price","country"]] # DataFrame # выбор строк по условию (фильтр) df[df["price"] > 100] df[(df["country"]=="RU") & (df["price"] <= 500)] # выбрать по индексам (номер строк) df.iloc[0] # первая строка df.iloc[0:5] # с 0 по 4
4) Сортировка и уникальные значения
df.sort_values("price") # по возрастанию df.sort_values(["country","price"], ascending=[True, False]) df["country"].unique() # уникальные страны df["country"].value_counts()# сколько раз встречается
5) Создание и изменение столбцов
df["price_with_tax"] = df["price"] * 1.2 df["is_expensive"] = df["price"] > 500 # переименовать df = df.rename(columns={"price":"net_price"}) # удалить столбец df = df.drop(columns=["is_expensive"])
6) Пропуски (NaN)
df.isna().sum() # сколько пропусков в каждом столбце df["price"] = df["price"].fillna(0) # заменить NaN на 0 df = df.dropna(subset=["price"]) # убрать строки, где price пустой
7) Группировка и агрегация
# средняя цена по стране df.groupby("country")["price"].mean() # несколько метрик сразу df.groupby("country")["price"].agg(["count","mean","min","max"]) # группировка по двум полям df.groupby(["country","category"])["price"].sum().reset_index()
8) Объединение таблиц (merge / join)
Представь две таблицы: users (id, name) и orders (user_id, price).
Нужно «подтянуть» имена к заказам:
orders = pd.read_csv("orders.csv") # user_id, price users = pd.read_csv("users.csv") # id, name merged = orders.merge(users, left_on="user_id", right_on="id", how="left") # теперь в merged есть price + name
Чаще всего используется how="left" — берём все строки из «левой» таблицы.
9) Даты и время
# превратить текст в дату df["date"] = pd.to_datetime(df["date"]) # pandas поймёт формат # извлечь части даты df["year"] = df["date"].dt.year df["month"] = df["date"].dt.month df["dow"] = df["date"].dt.dayofweek # день недели (0..6)
11) Простые графики (если установлен matplotlib)
import matplotlib.pyplot as plt df["price"].hist(bins=30) # гистограмма plt.show() df.plot(x="date", y="price") # линия по времени plt.show()