Шпаргалка Pandas для Data Science в Python

⚡ Розумний підсумок

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

  • 🔘 Дві структури: Series містить один позначений вимір, тоді як DataFrame містить два зі змішаними типами стовпців.
  • ☑️ Імпортуйте будь-що: read_csv, read_excel, read_sql, read_json та read_html завантажують файли у DataFrame.
  • Точний вибір: loc вибирає за міткою, iloc за позицією, а логічні маски фільтрують рядки за умовою.
  • 🧪 Надійне очищення: isnull, dropna, fillna, drop_duplicates та replace обробляють пропуски та повторювані записи.
  • 🛠️ Швидка перевірка: форма, інформація, типи даних та опис, підсумовування структури та статистики перед початком аналізу.
  • ⚠️ Примітка до версії: pandas 3.0 за замовчуванням увімкнено копіювання під час запису, тому ланцюгове присвоєння викликає помилку.

Шпаргалка Pandas для Data Science в Python

Що таке шпаргалка для 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.Серія() pd.DataFrame()

1. Серія

Це одновимірний позначений масив. Він може містити будь-який тип даних, і None стає відсутньою цінністю.

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

2. DataFrame

Це двовимірний позначений масив. Він може містити будь-який тип даних та стовпці різного розміру.

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. DataFrame

# 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. Логічне індексування

Булева маска зберігає лише рядки, для яких умова має значення True. У другому прикладі додано оператор 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[] метод доступу та зміни певних елементів.
  • Створіть копію серії або 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 values that don't overlap
s.add(s2, fill_value=0)

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

Ці функції можна використовувати для фільтрації, сортування та групуванняping Об'єкти серії та 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 Шпаргалка

Кожну команду тут можна виконати в супутньому блокноті: Шпаргалка Pandas – Python для Data Science.ipynb.

Поширені запитання

Копіювання під час запису завжди ввімкнено, рядки використовують спеціальний тип str, а ланцюгове присвоєння відфільтрованої копії викликає ChainedAssignmentError. Замість цього присвоєння здійснюється через .loc. Кожна команда тут все ще виконується на панди 3.0.

pd.merge() об'єднується зі спільними ключами так само, як SQL 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 перетворює коментарі, такі як group by course та count, у робочий код Pandas всередині JupyterРозглядати результат як чернетку та перевіряти кількість рядків.

Передати dtype до read_csv(), конвертуйте повторювані текстові стовпці в категорії, перетворюйте числа вниз за допомогою pd.to_numeric та завантажуйте частинами за допомогою chunksize. df.info() повідомляє реальний розмір.

Підсумуйте цей пост за допомогою: