13 методов, которые вы можете использовать, чтобы избежать повторения задач в Microsoft Excel, одновременно повышая квалификацию в Python и экономя время назад.

Впервые я начал изучать Python чуть более года назад на моей предыдущей должности аналитика данных. Компания, в которой я тогда работал, была посвящена Excel. Каждый месяц мне приходилось чистить и объединять около 100 разных файлов, собранных со всех уголков земного шара - как вы понимаете, это был кошмар! Из-за характера клиента это была давняя история о действительно жестких временных рамках для проведения анализа, что приводило к повторяющимся стрессовым узким местам.

Изначально я использовал VBA для автоматизации некоторых из моих ежемесячных работ, однако я нашел его довольно жестким, если форматы наборов данных немного менялись от месяца к месяцу. У меня также были серьезные проблемы с падением Excel, особенно когда объемы данных росли. Затем я открыл для себя Python, который в буквальном смысле изменил мою жизнь! Когда некоторые форматы файлов различались, я мог очень легко обновить и соответствующим образом изменить свой скрипт Python. Также больше не было сбоев файлов и потери моей работы.

Отсюда я предполагаю, что у вас есть .py файл или записная книжка для работы с импортированными пандами как псевдоним pd.

1. Импортируйте Excel и убедитесь, что даты являются объектами datetime.

Во-первых, вам нужно прочитать файл Excel в фреймворке Pandas. Одна проблема, с которой я изначально столкнулся с фреймами данных, заключалась в работе с датами. Когда я узнал о типе datetime, это открыло возможность форматирования, вычисления даты и многого другого.

pd.read_excel(file_path, parse_dates=['date_col1', 'date_col2']

Здесь file_path - это расположение файла Excel, который необходимо очистить, а также имя и расширение файла. Замените datecol1 и datecol2 названиями столбцов с датами в - вы всегда можете добавить или удалить больше в список, или удалить второй столбец.

2. Просмотрите пять верхних и нижних пяти строк данных.

Вы захотите взглянуть на свои данные на раннем этапе, чтобы убедиться, что они выглядят так, как вы ожидаете. df.head() отобразит пять верхних строк, а метод tail() покажет вам последние пять строк.

df.head()
df.tail()

3. Установите новые заголовки столбцов.

Посмотрев заголовок, вы можете заметить, что заголовки ваших столбцов на самом деле являются второй строкой - вам нужно обновить их. После этого вам следует удалить вторую строку, иначе это будет дубликат заголовков ваших столбцов.

df.columns = df[1]
df = df.drop(df[1])

4. Измените название столбца.

Иногда мы получали файлы, названия столбцов которых были изменены. Следующий оператор позволит вам при необходимости переименовать столбцы.

df = df.rename(columns = {'old_col':'new_col'})

5. Форма фрейма данных

В какой-то момент вы, вероятно, захотите точно знать, с каким количеством столбцов и строк вы работаете.

df.shape

6. Базовая описательная статистика

Чтобы получить представление о своих данных, ознакомьтесь с основной статистикой. Метод describe покажет вам минимальное, максимальное и среднее значение числовых столбцов.

df.describe()

7. Удалите повторяющиеся строки.

Приведенная выше статистика могла указать на что-то странное. Удалите все повторяющиеся строки, чтобы они не искажали анализ.

df.drop_duplicates()

Здесь можно добавить аргумент keep, чтобы удалить все дубликаты, кроме последнего, или фактически все дубликаты.

8. Заменить нулевые значения.

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

values = {'col_2': 0, 'col_3': 1, 'col_4': 2, 'col_5': 3}
df.fillna(value=values)

9. Снимите части струны.

Наборы данных, с которыми я работал, как правило, содержали дополнительный текст, от которого мне нужно было избавиться. Это можно сделать с помощью RegEx (регулярные выражения) - подробнее здесь.

df['col'] = df['col'].str.replace(r'\D', '')

10. V-поиск / присоединение

Присоедините свой фрейм данных df к другому фрейму данных, lookup_dataframe в столбце 'column_name', который появляется как в df, так и в lookup_dataframe.

df.join(lookup_dataframe, on='column_name')

11. Разделить столбец по разделителю.

Часто вам нужно разделить столбец на два отдельных столбца в определенной точке (разделитель). Здесь мы определим новый столбец и разделим существующий столбец по дефису.

df[['to_split','new']] = df['to_split'].str.split('-',expand=True)

12. Если столбец содержит «x», отбросьте соответствующие строки.

Иногда в столбцах есть определенные значения, которые, как вы знаете, необходимо исключить из анализа. Здесь мы фильтруем фрейм данных, где столбец col не равен строке delete, а затем обновляем фрейм данных, чтобы он был именно таким.

df = df[df[‘col’] != 'delete']

13. Сохраните файл в Excel в новом месте.

Наконец, чтобы сохранить очищенный файл обратно в Microsoft Excel. new_file_path - это новое местоположение этого файла, а также имя файла и .xlsx расширение файла. В этом примере я проигнорировал индексы, однако при необходимости вы можете удалить этот аргумент.

df.to_excel('new_file_path', ignore_index=True)

Я надеюсь, что теперь вы чувствуете себя уверенно, чтобы попробовать применить эти методы Pandas в своей работе или побочных проектах с целью устранения некоторых проблем, которые может вызвать работа с Excel!

Полезные ресурсы:

  • Документация Pandas - это невероятно и очень тщательно с примерами.
  • DataCamp - отличные курсы, которые поддержат вас от новичка до опытного Pythonista.
  • Переполнение стека - велика вероятность, что если вам нужен ответ на вопрос, кто-то уже задавал его здесь.