Шпаргалка по Pandas для науки о данных в Python

⚡ Умное резюме

В этом справочнике наиболее часто используемые команды библиотеки Pandas собраны на одной странице. Они сгруппированы по задачам: установка, создание Series и DataFrame, импорт файлов, выбор строк, очистка данных, применение функций и экспорт результатов.

  • 🔘 Две структуры: Объект Series содержит одно помеченное измерение, а DataFrame — два измерения со смешанными типами столбцов.
  • ☑️ Импортируйте что угодно: Функции read_csv, read_excel, read_sql, read_json и read_html загружают файлы в DataFrame.
  • Точный выбор: Параметр `loc` выбирает элементы по метке, `iloc` — по позиции, а логические маски фильтруют строки по условию.
  • 🧪 Чистота гарантирована: Функции isnull, dropna, fillna, drop_duplicates и replace обрабатывают пробелы и повторяющиеся записи.
  • 🇧🇷 Быстрая проверка: shape, info, dtypes и describe суммируют структуру и статистические данные перед началом анализа.
  • ⚠️ Примечание к версии: В pandas 3.0 по умолчанию включен механизм Copy-on-Write, поэтому цепочка присваиваний приводит к ошибке.

Шпаргалка по Pandas для науки о данных в Python

Что такое шпаргалка по Pandas?

Библиотека Pandas содержит сотни функций, однако в повседневной работе используется лишь небольшая их часть. Шпаргалка по Pandas Это одностраничный справочник, содержащий список этих команд, сгруппированных по выполняемой ими задаче.

В нем рассматриваются структуры Series и DataFrame, импорт и экспорт файлов, выбор и упорядочивание данных, очистка значений и применение функций. Каждый раздел ниже сопровождается кратким объяснением и рабочим кодом, поэтому страница также может служить для повторения пройденного материала. навыки анализа данных.

👉 Загрузите шпаргалку в формате PDF здесь.

Как установить и импортировать Pandas

Для настройки Pandas требуется две команды, обе выполняются в терминале или... Jupyter ноутбук клетка.

Шаг 1) Установите Pandas

Запустите это один раз для каждой среды; добавьте восклицательный знак перед каждым действием в ячейке блокнота.

pip install pandas

Шаг 2) Импорт Pandas

Импортируйте пакет под псевдонимом pd, что предполагается в каждом из приведенных здесь примеров.

import pandas as pd

Теперь вы можете вызывать функции Pandas для обработки, анализа и очистки данных. В разделах ниже они перечислены в порядке, в котором вы обычно к ним обращаетесь.

Структуры данных Pandas

В библиотеке Pandas есть две структуры данных: Серия и DataFrameОба являются помеченными массивами и могут содержать данные любого типа. Единственное различие заключается в размерности: Series — это одномерный массив, а DataFrame — двумерный массив, построенный из NumPy массивы снизу.

Характеристика Серия DataFrame
Габаритные размеры: Одномерный Двумерный
Содержит Один столбец с метками Много столбцов, смешанные типы данных
Конструктор pd.Серия() пд.DataFrame()

1. Серии

Это одномерный помеченный массив. Он может содержать данные любого типа, и None становится пропущенным значением.

s = pd.Series([2, -4, 6, 3, None], index=['A', 'B', 'C', 'D', 'E'])

2. Кадр данных

Это двумерный помеченный массив. Он может содержать данные любого типа и столбцы разных размеров.

data = {'RollNo' : [101, 102, 75, 99],
        'Name' : ['Mithlesh', 'Ram', 'Rudra', 'Mithlesh'],
        'Course' : ['Nodejs', None, 'Nodejs', 'JavaScript']
}
df = pd.DataFrame(data, columns=['RollNo', 'Name', 'Course'])
df.head()

Приведённая ниже шпаргалка для печати содержит все команды на одной странице.

Шпаргалка по Pandas для печати: список команд Series и DataFrame

Импорт данных

Pandas может считывать файлы многих типов непосредственно в DataFrame. Каждый из приведенных ниже методов чтения возвращает один такой объект. read_csv () является наиболее используемым.

# Import a CSV file pd
pd.read_csv(filename)

# Import a TSV file
pd.read_table(filename)

# Import a Excel file pd
pd.read_excel(filename)

# Import a SQL table/database
pd.read_sql(query, connection_object)

# Import a JSON file
pd.read_json(json_string)

# Import a HTML file
pd.read_html(url)

# From clipboard to read_table()
pd.read_clipboard()

# From dict
pd.DataFrame(dict)

Выбор

Вы можете выбирать элементы по их местоположению или по индексу. Один и тот же синтаксис с использованием квадратных скобок позволяет выбирать строки, столбцы и срезы из обеих структур.

1. Серии

# Accessing one element from Series
s['D']

# Accessing all elements between two given indices
s['A':'C']

# Accessing all elements from starting till given index
s[:'C']

# Accessing all elements from given index till end
s['B':]

2. Кадр данных

# Accessing one column df
df['Name']

# Accessing rows from after given row
df[1:]

# Accessing till before given row
df[:1]

# Accessing rows between two given rows
df[1:2]

Выбор посредством логического индексирования и настройки

Используйте iloc и iat для целых чисел и loc и at для этикеток.

1. По должности

df.iloc[0, 1]

df.iat[0, 1]

2. По этикетке

df.loc[[0],  ['Name']]

3. По метке/позиции

df.loc[2] # Both are same
df.iloc[2]

4. Логическое индексирование

Логическая маска сохраняет только те строки, в которых условие истинно. Во втором примере добавлен оператор NOT. ~Таким образом, он также возвращает значения, не превышающие 1.

# Series s where value is > 1
s[(s > 0)]

# Series s where value is <-2 or >1
s[(s < -2) | ~(s > 1)]

# Use filter to adjust DataFrame
df[df['RollNo']>100]

# Set index a of Series s to 6
s['D'] = 10
s.head()

Очистка данных

До Python В целях шпаргалки по очистке данных вы можете выполнить следующие операции:

  • Переименуйте столбцы, используя rename() метод.
  • Обновите значения, используя at[] or iat[] метод доступа и изменения определенных элементов.
  • Создайте копию объекта Series или DataFrame, используя... copy() метод.
  • Проверьте наличие значений NULL с помощью isnull() метод и перетащите их, используя dropna() метод.
  • Проверьте наличие повторяющихся значений, используя duplicated() метод. Сбросьте их, используя drop_duplicates() метод.
  • Замените значения NULL, используя fillna() метод с заданным значением.
  • Замените значения, используя replace() метод.
  • Отсортируйте значения, используя sort_values() метод.
  • Ранжируйте значения, используя rank() метод.
# Renaming columns
df.columns = ['a','b','c']
df.head()

# Mass renaming of columns
df = df.rename(columns={'RollNo': 'ID', 'Name': 'Student_Name'})

# Or use this edit in same DataFrame instead of in copy
df.rename(columns={'RollNo': 'ID', 'Name': 'Student_Name'}, inplace=True)
df.head()

# Counting duplicates in a column
df.duplicated(subset='Name')

# Removing entire row that has duplicate in given column
df.drop_duplicates(subset=['Name'])

# You can choose which one keep - by default is first
df.drop_duplicates(subset=['Name'], keep='last')

# Checks for Null Values
s.isnull()

# Checks for non-Null Values - reverse of isnull()
s.notnull()

# Checks for Null Values df
df.isnull()

# Checks for non-Null Values - reverse of isnull()
df.notnull()

# Drops all rows that contain null values
df.dropna()

# Drops all columns that contain null values
df.dropna(axis=1)

# Replaces all null values with 'Guru99'
df.fillna('Guru99')

# Replaces all null values with the mean
s.fillna(s.mean())

# Converts the datatype of the Series to float
s.astype(float)

# Replaces all values equal to 6 with 'Six'
s.replace(6,'Six')

# Replaces all 2 with 'Two' and 6 with 'Six'
s.replace([2,6],['Two','Six'])

# Drop from rows (axis=0)
s.drop(['B',  'D'])

# Drop from columns(axis=1)
df.drop('Name', axis=1)

# Sort by labels with axis
df.sort_index()

# Sort by values with axis
df.sort_values(by='RollNo')

# Ranking entries
df.rank()

# s1 is pointing to same Series as s
s1 = s

# s_copy of s, but not pointing same Series
s_copy = s.copy()

# df1 is pointing to same DataFrame as df
df1 = s

# df_copy of df, but not pointing same DataFrame
df_copy = df.copy()

Обратите внимание, что s1 = s создает только второе имя для того же объекта, никогда не создает его копию — вот почему. copy() следует за ним.

Получение информации

Для получения информации вы можете выполнить следующие операции:

  • Использовать shape атрибут для получения количества строк и столбцов.
  • Использовать head() or tail() метод получения первых или последних нескольких строк в качестве образца.
  • Использовать info(), describe() or dtypes Метод получения информации о типе данных, количестве, среднем значении, стандартном отклонении, минимальном и максимальном значениях.
  • Использовать count(), min(), max(), sum(), mean() и median() методы получения конкретной статистической информации о значениях.
  • Использовать loc[] метод получения строки.
  • Использовать groupby() Метод, позволяющий применить функцию GROUP BY для группировки похожих значений в столбце DataFrame.

1. Основная информация

# Counting all elements in Series
len(s)

# Counting all elements in DataFrame
len(df)

# Prints number of rows and columns in dataframe
df.shape

# Prints first 10 rows by default, if no value set
df.head(10)

# Prints last 10 rows by default, if no value set
df.tail(10)

# For counting non-Null values column-wise
df.count()

# For range of index df
df.index

# For name of attributes/columns
df.columns

# Index, Data Type and Memory information
df.info()

# Datatypes of each column
df.dtypes

# Summary statistics for numerical columns
df.describe()

2. Резюме

# For adding all values column-wise
df.sum()

# For min column-wise
df.min()

# For max column-wise
df.max()

# For mean value in number column
df.mean()

# For median value in number column
df.median()

# Count non-Null values
s.count()

# Count non-Null values
df.count()

# Return Series of given column
df['Name'].tolist()

# Name of columns
df.columns.tolist()

# Creating subset
df[['Name', 'Course']]

# Return number of values in each group
df.groupby('Name').count()

Применение функций

apply() Функция применяется ко всем значениям. Затем правила выравнивания определяют, что происходит, когда два объекта имеют общий индекс лишь частично.

# Define function
f = lambda x: x*5

# Apply this function on given Series - For each value
s.apply(f)

# Apply this function on given DataFrame - For each value
df.apply(f)

1. Внутреннее выравнивание данных

# NA values for indices that don't overlap
s2 = pd.Series([8, -1, 4],  index=['A',  'C',  'D'])
s + s2

2. Арифметика OperaЗаполнение методами Fill

# Fill values that don't overlap
s.add(s2, fill_value=0)

3. Фильтровать, сортировать и группировать по

Эти функции можно использовать для фильтрации, сортировки и группировки.ping Объекты Series и DataFrame.

# Filter rows where column is greater than 100
df[df['RollNo']>100]

# Filter rows where 70 < column < 101
df[(df['RollNo'] > 70) & (df['RollNo'] < 101)]

# Sorts values in ascending order
s.sort_values()

# Sorts values in descending order
s.sort_values(ascending=False)

# Sorts values by RollNo in ascending order
df.sort_values('RollNo')

# Sorts values by RollNo in descending order
df.sort_values('RollNo', ascending=False)

Экспорт данных

Каждый редактор ниже дублирует редактор из раздела импорта, поэтому файл может быть обработан без дополнительных инструментов.

# Export as a CSV file df
df.to_csv(filename)

# Export as a Excel file df
df.to_excel(filename)

# Export as a SQL table df
df.to_sql(table_name, connection_object)

# Export as a JSON file
df.to_json(filename)

# Export as a HTML table
df.to_html(filename)

# Write to the clipboard
df.to_clipboard()

Шпаргалка Colab

Все приведенные здесь команды можно выполнить в сопутствующем блокноте: Шпаргалка по пандам – Python для Data Science.ipynb.

Часто задаваемые вопросы (FAQ)

Функция Copy-on-Write всегда включена, строки используют выделенный тип данных str, а цепочка присваивания в отфильтрованной копии вызывает ChainedAssignmentError. Вместо этого присваивайте значения через .loc. Все команды здесь по-прежнему выполняются на панды 3.0.

pd.merge() объединяет файлы по общим ключам так же, как и a SQL Метод `join` выполняет операцию `join`, `df.join()` выравнивает данные по индексу, а `pd.concat()` объединяет кадры. Используйте `merge` для ключей, `concat` для добавления.

Функция df.pivot_table() преобразует длинные строки в широкую агрегированную сетку, pd.melt() выполняет обратное преобразование, а stack() или unstack() перемещают уровень между индексом и столбцами.

Функция pd.to_datetime() преобразует текст в формат datetime64, метод доступа .dt предоставляет доступ к году, месяцу и дню недели, а функция resample() выполняет агрегирование по дню, неделе или месяцу, если соответствующий столбец является индексом.

Векторизованные операции выполняются в скомпилированном C по всему массиву, а метод apply() вызывает Python Выполнить функцию один раз для каждой строки. Поменять местамиping Применение функции apply() по строкам для векторизованного выражения зачастую происходит в десять раз быстрее.

Искусственный интеллект-помощники преобразуют простое описание результата в конкретные запросы, предлагая команды groupby, merge или pivot_table с необходимыми аргументами для каждой из них. Сначала проверьте предложенные варианты на небольшом примере.

Да. Второй пилот GitHub преобразует комментарий, например, "группировать по курсу и количеству", в работающий код Pandas внутри себя. JupyterРассматривайте полученный результат как черновик и проверьте количество строк.

Передайте тип данных в read_csv ()Преобразовать повторяющиеся текстовые столбцы в категории, преобразовать числа в числовой формат с помощью pd.to_numeric и загрузить данные по частям, используя chunksize. Функция df.info() сообщает о реальном объеме занимаемого пространства.

Подведем итог этой публикации следующим образом: