Pandas Шпаргалка
Подробное руководство по использованию библиотеки Pandas.
Установка Pandas
| Команда | Описание |
|---|---|
conda install pandas |
Лучший способ получить pandas — через conda |
python3 -m pip install --upgrade pandas |
Через PyPI |
pip install pandas |
Стандартная установка через pip |
Ключевые сокращения и импорт пакетов
| Сокращение | Описание |
|---|---|
df |
Любой объект Pandas DataFrame |
s |
Любой объект Pandas Series |
Методы импорта
| Команда | Описание |
|---|---|
import pandas as pd |
Импорт pandas с псевдонимом pd |
import numpy as np |
Импорт numpy с псевдонимом np |
Выбор данных
| Команда | Описание |
|---|---|
df[col] |
Возвращает столбец как Series по имени столбца |
df[[col1, col2]] |
Возвращает несколько столбцов как DataFrame |
s.iloc[0] |
Выбор данных по позиции |
s.loc['index_one'] |
Выбор данных по индексу |
df.iloc[0,:] |
Возвращает первую строку |
df.iloc[0,0] |
Возвращает первый элемент первого столбца |
Очистка данных
| Команда | Описание |
|---|---|
df.columns = ['a','b','c'] |
Переименование столбцов |
pd.isnull() |
Проверяет наличие null-значений в DataFrame; возвращает Boolean-массив |
pd.notnull() |
Проверяет наличие не-null-значений в DataFrame; возвращает Boolean-массив |
df.dropna() |
Удаляет все строки, содержащие null-значения |
df.dropna(axis=1) |
Удаляет все столбцы, содержащие null-значения |
df.dropna(axis=1, thresh=n) |
Удаляет все строки, содержащие менее n не-null-значений |
df.fillna(x) |
Заменяет все null-значения в DataFrame на x |
s.astype(float) |
Преобразует тип данных Series в float |
s.replace(1, 'one') |
Заменяет все значения, равные 1, на ‘one’ |
s.replace([1,3], ['one', 'three']) |
Заменяет 1 на ‘one’, а 3 на ’three’ |
df.rename(columns=lambda x: x + 1) |
Массовое переименование столбцов |
df.rename(columns={'old_name': 'new_name'}) |
Выборочное переименование столбцов |
df.set_index('column_one') |
Смена индексного столбца |
df.rename(index=lambda x: x + 1) |
Массовое переименование индексов |
Импорт данных
| Команда | Описание |
|---|---|
pd.read_csv(filename) |
Импорт данных из CSV-файла |
pd.read_table(filename) |
Импорт данных из текстового файла с разделителями |
pd.read_excel(filename) |
Импорт данных из файла Excel |
pd.read_sql(query, connection_object) |
Импорт данных из таблицы/базы данных SQL |
pd.read_json(json_string) |
Импорт данных из строки JSON |
pd.read_html(url) |
Извлечение таблиц из URL, строки или HTML-файла |
pd.read_clipboard() |
Получение содержимого из буфера обмена и передача в read_table() |
pd.DataFrame(dict) |
Импорт данных из объекта словаря (ключи — имена столбцов, значения — данные) |
Экспорт данных
| Команда | Описание |
|---|---|
df.to_csv(filename) |
Экспорт данных в CSV-файл |
df.to_excel(filename) |
Экспорт данных в файл Excel |
df.to_sql(table_name, connection_object) |
Экспорт данных в таблицу SQL |
df.to_json(filename) |
Экспорт данных в текстовый файл в формате JSON |
Обработка данных: Filter, Sort и GroupBy
| Команда | Описание |
|---|---|
df[df[col] > 0.5] |
Выбор строк, где значение в столбце ‘col’ > 0,5 |
df.sort_values(col1) |
Сортировка данных по столбцу col1 (по умолчанию по возрастанию) |
df.sort_values(col2, ascending=False) |
Сортировка данных по столбцу col2 по убыванию |
df.sort_values([col1, col2], ascending=[True, False]) |
Сортировка по col1 по возрастанию, затем по col2 по убыванию |
df.groupby(col) |
Возвращает объект GroupBy, сгруппированный по столбцу ‘col’ |
df.groupby([col1, col2]) |
Возвращает объект GroupBy, сгруппированный по нескольким столбцам |
df.groupby(col1)[col2].mean() |
Возвращает среднее значение столбца col2 для каждой группы в col1 |
df.pivot_table(index=col1, values=[col2, col3], aggfunc=max) |
Создание сводной таблицы, сгруппированной по col1, с вычислением максимума для col2 и col3 |
df.groupby(col1).agg(np.mean) |
Возвращает среднее значение для всех столбцов, сгруппированных по col1 |
df.apply(np.mean) |
Применение функции np.mean к каждому столбцу |
df.apply(np.max, axis=1) |
Применение функции np.max к каждой строке |
Создание тестовых объектов
| Команда | Описание |
|---|---|
pd.DataFrame(np.random.rand(20,5)) |
Создает DataFrame с 20 строками и 5 столбцами случайных чисел |
pd.Series(my_list) |
Создает Series из итерируемого объекта my_list |
df.index = pd.date_range('1900/1/30', periods=df.shape[0]) |
Добавление индекса даты |
Просмотр и проверка данных
| Команда | Описание |
|---|---|
df.head(n) |
Просмотр первых n строк DataFrame |
df.tail(n) |
Просмотр последних n строк DataFrame |
df.shape |
Проверка количества строк и столбцов |
df.info() |
Просмотр индекса, типов данных и информации о памяти |
df.describe() |
Просмотр сводной статистики для числовых столбцов |
s.value_counts(dropna=False) |
Просмотр уникальных значений и их количества для Series |
df.apply(pd.Series.value_counts) |
Просмотр уникальных значений и их количества для каждого столбца в DataFrame |
Слияние данных
| Команда | Описание |
|---|---|
df1.append(df2) |
Добавление строк из df2 в конец df1 |
pd.concat([df1, df2], axis=1) |
Добавление столбцов из df2 в конец df1 |
df1.join(df2, on=col1, how='inner') |
Слияние (Join) в стиле SQL между столбцами df1 и df2 |
Статистика данных
| Команда | Описание |
|---|---|
df.describe() |
Просмотр сводной статистики для числовых столбцов |
df.mean() |
Возвращает среднее значение всех столбцов |
df.corr() |
Возвращает коэффициент корреляции между столбцами |
df.count() |
Возвращает количество не-null-значений в каждом столбце |
df.max() |
Возвращает максимальное значение каждого столбца |
df.min() |
Возвращает минимальное значение каждого столбца |
df.median() |
Возвращает медиану каждого столбца |
df.std() |
Возвращает стандартное отклонение каждого столбца |