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.
- Переполнение стека - велика вероятность, что если вам нужен ответ на вопрос, кто-то уже задавал его здесь.