Книга: «Excel с Python и R: раскройте потенциал расширенной обработки и визуализации данных»

Если вы работаете с данными, то наверняка сталкивались с ситуацией, когда Excel становится вашим лучшим другом и злейшим врагом одновременно. С одной стороны, это удобный и привычный инструмент для работы с таблицами, с другой — его ограничения могут превратить даже простую задачу в настоящий кошмар. Но что, если бы вы могли объединить мощь Excel с гибкостью и возможностями Python и R?
Именно об этом рассказывает новая книга «Excel с Python и R: раскройте потенциал расширенной обработки и визуализации данных».
Авторы книги — Стивен Сандерсон и Дэвид Кун — практики с огромным опытом в анализе данных. Сандерсон, создатель пакетов healthyverse для R, и Кун, соучредитель компании Functional Analytics и создатель платформы ownR, знают, как сделать анализ данных эффективным и доступным. Их книга — это прорыв для тех, кто хочет выйти за рамки стандартных возможностей Excel.
Почему эта книга?
Автоматизация рутинных задач
Вы устали от повторяющихся операций в Excel? Книга научит вас писать скрипты на Python и R, которые автоматизируют выполнение задач в Excel. Больше никаких ручных макросов VBA — только эффективные и современные решения.
Мощные визуализации данных
Создание графиков в Excel может быть ограниченным и утомительным. Авторы покажут, как использовать ggplot2 ( R ) и Matplotlib (Python) для создания профессиональных визуализаций прямо в Excel.
Расширенные методы анализа
От разведочного анализа данных до анализа временных рядов — книга охватывает ключевые методы, которые помогут вам глубже понимать данные и принимать обоснованные решения.
Интеграция API и других инструментов
Вы научитесь интегрировать Excel с внешними API и другими инструментами, что значительно расширит ваши возможности для работы с данными.
Возврат результатов в Excel
После обработки данных в Python или R вы сможете легко возвращать результаты обратно в Excel, сохраняя привычный рабочий процесс.
Автоматизация Excel через Python и R
Забудьте о ручном вводе данных и повторяющихся задачах. Скрипты на Python и R сделают всю работу за вас. Интегрируйте Python и R в Excel, чтобы использовать их функции прямо в таблицах.
Использование R и Python вместо VBA
Макросы VBA уходят в прошлое. Теперь вы сможете использовать более мощные и гибкие языки для работы с Excel.
Создание графиков с помощью ggplot2 и Matplotlib
Визуализируйте данные на профессиональном уровне, используя лучшие библиотеки для построения графиков.
Статистический анализ и анализ временных рядов
Освойте передовые методы анализа данных, которые помогут вам глубже понимать информацию.
Кому подойдет «Excel с Python и R»?
Книга рассчитана на пользователей R и/или Python среднего или продвинутого уровня, которые уже имеют опыт анализа данных и знакомы с основами Excel. На тех, кто хочет выйти за пределы стандартных функций Excel и использовать всю мощь современных языков программирования.
«Excel с Python и R» — новый взгляд на анализ данных. Она объединяет мощь Excel с гибкостью Python и R, позволяя вам решать задачи, которые раньше казались невозможными.
Не упустите возможность раскрыть весь потенциал Excel и современных языков программирования с нашей новинкой!
Но если остались сомнения, ознакомьтесь с отрывком:
Очистка данных Excel в среде Python
Очистка данных — важный этап. С его помощью вы можете:
Приступим к очистке данных в нашем примере. Начнем с генерации грязных данных.
import pandas as pd
import numpy as np
# Создание датафрейма с отсутствующими значениями, дубликатами
# и смешанными типами
data = {
‘ID’: [1, 2, 3, 4, 5, 6],
‘Name’: [‘Alice’, ‘Bob’, ‘Charlie’, ‘Alice’, ‘Eva’, ‘Eva’],
‘Age’: [25, np.nan, 30, 28, 22, 23],
‘Salary’: [‘$50,000’, ‘$60,000’, ‘Missing’, ‘$65,000’, ‘$55,000’,
‘$75,000’]
}
df = pd.DataFrame(data)
# Внедрение пропущенных значений
df.loc[1, ‘Age’] = np.nan
df.loc[3, ‘Salary’] = np.nan
# Добавление дубликатов
df = pd.concat([df, df.iloc[1:3]],
ignore_index=True)
# Сохранение образца данных
# в текущем рабочем каталоге
df.to_excel(‘dirty_data.xlsx’)

Созданный датафрейм выглядит следующим образом (рис. 8.5).
Получив грязные данные, мы можем приступить к их очистке, которая предполагает обработку отсутствующих значений, удаление дубликатов и преобразование типов данных. Посмотрим, как это делается.
Обработка отсутствующих значений
Мы начинаем с выявления ячеек или столбцов с отсутствующими данными. В Python такие данные обычно бывают представлены значениями NaN (сокращение от Not a Number, то есть «не число») или None.
В зависимости от контекста вам может понадобиться заменить отсутствующие значения. К распространенным методам замены относятся:
Python предлагает несколько решений, позволяющих сделать замену эффективно и статистически надежно, начиная от базовых методов библиотеки pandas и заканчивая специализированными пакетами, предлагающими гораздо более эффективные методы импутации (восстановления) данных, такие как fancyimpute. Однако импутацию никогда не следует применять вслепую, поскольку отсутствующие данные тоже могут содержать важную информацию, а их необдуманное восстановление способно исказить результаты анализа.
Важно различать три типа отсутствующих значений.
1. Полностью случайный пропуск (missing completely at random, MCAR).
2. Случайный пропуск (missing at random, MAR).
3. Неслучайный пропуск (missing not at random, MNAR).
Рассмотрим вариант, когда в строке или столбце отсутствует значительная часть данных. В таком случае вы можете вообще удалить эту строку или столбец. Однако будьте осторожны во избежание существенной потери информации.
import pandas as pd
import numpy as np
# Загрузка данных Excel в датафрейм pandas
df = pd.read_excel(‘dirty_data.xlsx’, index_col=0)
# Обработка отсутствующих значений
# Определение отсутствующих значений
missing_values = df.isnull().sum()
# Замена отсутствующих значений средним арифметическим (для числовых столбцов)
df[‘Age’].fillna(df[‘Age’].mean(), inplace=True)
# Замена отсутствующих значений модой (для категориальных столбцов)
df[‘Salary’].fillna(df[‘Salary’].mode()[0], inplace=True)
# Прямое или обратное заполнение отсутствующих значений
# Данная строка является заполнителем, демонстрирующим одну из возможностей
# df[‘ColumnWithMissingValues’].fillna(method=’ffill’, inplace=True)
# Интерполяция недостающих значений исходя из тенденций в данных
# Данная строка является заполнителем, демонстрирующим одну из возможностей
# df[‘NumericColumn’].interpolate(method=’linear’, inplace=True)
# Удаление строк или столбцов с отсутствующими данными
df.dropna(axis=0, inplace=True) # Удаление строк с отсутствующими данными
df.dropna(axis=1, inplace=True) # Удаление столбцов с отсутствующими данными
df.to_excel(‘cleaned_data.xlsx’)
Обработка дубликатов
Библиотеки Python, такие как pandas, предоставляют функции для обнаружения и обработки дубликатов. Для их выявления можно использовать метод duplicated(). После обнаружения дубликатов вы можете удалить их с помощью метода drop_duplicates(). Будьте осторожны при удалении, особенно в тех случаях, когда наличие повторяющихся строк является ожидаемым.
# Обработка дубликатов
# Обнаружение и отображение дублирующихся строк
duplicate_rows = df[df.duplicated()]
print(«Duplicate Rows:»)
print(duplicate_rows)
# Удаление дублирующихся строк
df.drop_duplicates(inplace=True)
Преобразование типов данных
Несмотря на высокую степень автоматизации этого процесса, чтение данных из Excel может привести к неправильному определению их типов. В Python типы данных часто назначаются автоматически при их чтении из Excel с помощью таких библиотек, как pandas. Однако по завершении необходимо убедиться в том, что каждому столбцу присвоен правильный тип данных (например, число, текст, дата и т. д.).
Последствия неправильного определения типов данных варьируются от потребления слишком большого объема памяти до реальных семантических ошибок. Например, если логические значения хранятся в виде чисел с плавающей запятой, то будут обрабатываться корректно, но занимать гораздо больше памяти (64 байта вместо одного бита), а попытка преобразовать строку в число с плавающей запятой может вообще привести к сбою в работе кода. Чтобы снизить этот риск, сначала определите типы загружаемых данных, а затем соответствующим образом преобразуйте их. Для преобразования типов данных в Python можно использовать метод astype() из библиотеки pandas. Например, чтобы преобразовать столбец в числовой тип данных, вы можете использовать df[‘Column Name’] = df[‘Column Name’].astype(float).
Вот пример того, как это можно сделать:
# Контроль преобразования типов данных
# Проверка типов данных
print(df.dtypes)
# Преобразование столбца в другой тип данных (например, в число с плавающей точкой)
df.loc[df[‘Salary’]==’Missing’, ‘Salary’] = np.NaN
df.loc[:, ‘Salary’] = df[‘Salary’].str.replace(«$», «»)
df.loc[:, ‘Salary’] = df[‘Salary’].str.replace(«,», «»)
df[‘Salary’] = df[‘Salary’].astype(float)
print(df)
# Теперь, когда столбец Salary является числовым, мы можем заполнить
# недостающие значения средним арифметическим
df[‘Salary’].fillna(df[‘Salary’].mean(), inplace=True)
С книгой «Excel с Python и R: раскройте потенциал расширенной обработки и визуализации данных» можно ознакомиться на сайте издательства:
