Новости

07.03.2025

Книга: «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


Очистка данных — важный этап. С его помощью вы можете:

  • подготовить данные 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: раскройте потенциал расширенной обработки и визуализации данных» можно ознакомиться на сайте издательства:


Комментарии: 0

Пока нет комментариев


Оставить комментарий






CAPTCHAОбновить изображение

Наберите текст, изображённый на картинке

Все поля обязательны к заполнению.

Перед публикацией комментарии проходят модерацию.