Лучшая шпаргалка по pandas
3 min readJan 20, 2025
# В этой шпаргалке мы будем использовать сокращение
# df - объект DataFrame object
# s - объект Series object
import pandas as pd
import numpy as np
Импорт данных
pd.read_csv(filename) # Из файла CSV
pd.read_table(filename) # Из текстового файла с разделителями (например, TSV)
pd.read_excel(filename) # Из Excel файла
pd.read_sql(query, connection_object) # Считывает данные из таблицы/базы данных SQL
pd.read_json(json_string) # Считывает данные из строки, URL или файла в формате JSON
pd.read_html(url) # Разбирает html странице из url и извлекает таблицы в список фреймов данных
pd.read_clipboard() # Получает содержимое буфера обмена и передает его в read_table()
pd.DataFrame(dict) # Из dict по ключу столбцов, значения - данные в виде списка
Экспорт данных
df.to_csv(filename) # Запись в файл CSV
df.to_excel(filename) # Запись в файл Excel
df.to_sql(table_name, connection_object) # Запись в таблицу SQL
df.to_json(filename) # Запись в файл в формате JSON
df.to_html(filename) # Сохраняет в виде таблицы HTML
df.to_clipboard() # Запись в буфер обмена
Создание тестовых объектов (полезно для юнит тестов)
#
pd.DataFrame(np.random.rand(20,5)) # -5 столбцов и 20 строк случайных float
pd.Series(my_list) # Создает a series из iterable 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 #Number of rows a n d columns
df.info() # Индекс, тип данных и информация о памяти
df.describe() # Сводная статистика для числовых столбцов
s.value_counts(dropna=False) # Просмотр уникальных values и counts
df.apply(pd.Series.value_counts) # Unique значения и counts из всех столбцов
Выборка
df[col] # Возвращает столбец с меткой col в виде Series
df[[col1, col2]] # Возвращает столбцы в виде нового DataFrame
s.iloc[0] # Выбор по позиции
s.loc[0] # Выбор по индексу
df.iloc[0,:] # Первый ряд
df.iloc[0,0] # Первый элемент первого столбца
Очистка данных
df.columns = ['a', 'b', 'c'] # Переименование столбцов
pd.isnull() # Проверяет нулевые значения, возвращает булевский массив
pd.notnull() # Противоположность s.isnull()
df.dropna() # Отбрасывает все строки, содержащие null
df.dropna(axis=1) # Отбрасывает все столбцы, которые содержат null
df.dropna(axis=1,thresh=n) # Отбрасывает все строки, имеющие меньше n и не null
df.fillna(x) # Заменяет все нулевые значения на x
s.fillna(s.mean()) # Заменяет все нулевые значения средним значением (среднее значение может быть заменено практически любой функцией из раздела статистики)
s.astype(float) # Преобразует тип данных seies в 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) # Массовое переименование индекса
Фильтрация, сортировка и группировка
df[df[col] › 0.5] # Строки, в которых столбец col больше 0.5
df[(df[col] > 0.5) & (df[col] ‹ 0.7)] # Строки где 0.7 больше col больше 0.5
df.sort_values(col1) # Сортирует значения по col1 в порядке возрастания
df.sort_values(co12,ascending=False) # Сортирует значения по co12 в порядке убывания
df.sort_values([col1, co12], ascending=[True,False]) # Сортирует значения по col1 в порядке возрастания, затем по col2 в порядке убывания
df.groupby(col) # Возвращает объект groupby для значений из одного столбца
df.groupby([co11, co12]) # Возвращает значения объекта groupby из нескольких столбцов
df.groupby(col1)[col2].mean() # Возвращает среднее значение значений в co12, сгруппированных по значениям в col1 (среднее значение можно заменить практически любой функцией из раздела статистики)
df.pivot_table(index=col1,values=[co12, col3], aggfunc=mean) # Создает таблицу, которая группирует данные по col1 и вычисляет среднее значение col2 и col3
df.groupby(col1).agg(np.mean) # Находит среднее значение по всем столбцам для каждой уникальной группы столбцов
df.apply(np.mean) # Применяет функцию к каждому столбцу
df.apply(np.max, axis=1) # Применяет функцию к каждой строке
Соединение / Комбинирование
df1.append(df2) # Добавляет строки из df1 в конец df2 (столбцы должны быть одинаковыми)
pd.concat([df1, df2], axis=1) # Добавляет столбцы из df1 в конец df2 (строки должны быть одинаковыми)
df1.join(df2,on=co11,how='inner') # SQL-стиль объединяет столбцы в df1 со столбцами в df2, где строки для col имеют одинаковые значения. как может быть один из вариантов 'left', 'right', 'outer', 'inner'
Статистика
df.describe() # Сводная статистика для числовых столбцов
df.mean() # Возвращает среднее значение по всем столбцам
df.corr() # Возвращает корреляцию между столбцами в DataFrame
df.count() # Возвращает количество ненулевых значений в каждом столбце DataFrame
df.max() # Возвращает наибольшее значение в каждом столбце
df.min() # Возвращает наименьшее значение в каждом столбце
df.median() # Возвращает медиану каждого столбца
df.std() # Возвращает стандартное отклонение для каждого столбца