Кому не хочется лишний час поспать утром? Но, увы, вам надо просыпаться в офис, чтобы выполнять там повседневные, рутинные задачи. SQL-запросы для извлечения данных из базы данных, сохранение датасетов в CSV, манипуляции с данными и т.д, и т.п. Все это задачи, которые постоянно встречаются на пути аналитика данных.

И часто эти задачи приходится выполнять каждый день. Тут надо вытащить данные из базы, тут пошаманить в Excel, там — переслать другой команде информацию, на основе которой будут принимать важные решения. Делать одно и то же каждый день утомительно и, честно говоря, это никак не прокачивает вас как аналитика.

В этой статье мы увидим, как можно автоматизировать повседневные скучные задачи с помощью Python. Итак, приступим.

Перед началом установите Anaconda или любую другую аналогичную IDE, в которой вы можете запускать свой код. Это обязательное условие.

Во-первых, нам нужно создать соединение с базой данных, откуда мы будем извлекать данные. В этой статье я создам соединение Vertica (для использования базы данных MySQL используйте эту команду: import mysql.connector). Ниже приведен код, который вам понадобится для создания соединения с базой данных.

from vertica_python import connect

conn_info = {'host': '123.45.67.89',
'port': 5433,
'user': 'Username',
'password': 'password',
'database': 'Schema_name',
'read_timeout': 600, # таймаут 10 минут
'unicode_error': 'strict', # по умолчанию выдает ошибку, связанную с неверными результатами UTF-8
'ssl': False # по умолачнию SSL отключен
}

connection = connect(**conn_info)

Хостом будет IP-адрес сервера, на котором стоит база данных. После того, как вы запустите этот код, ваше соединение будет настроено, и вы сможете перейти к следующему шагу — созданию курсора. Курсор нужен для выполнения оператора, который связывается с базой данных. Он также используется для выполнения операторов SQL, вызова процедур и выборки всех данных из набора результатов.

cursor = connection.cursor()

После создания курсора уже можно сделать SQL-запрос.

cursor.execute("Select * from table_name")

Команда cursor.execute скомпилирует ваш запрос и выдаст синтаксическую ошибку, если у вас в SQL-операторе что-то не так. После этого нам нужно получить все записи из набора результатов и сохранить данные в файл с расширением CSV.

import csv
with open('output.csv','w') as f:
   writer = csv.writer(f)
   writer.writerow([i[0] for i in cursor.description])
   for row in cursor.fetchall():
       writer.writerow(row)

Чтобы сохранить набор результатов в CSV, нам нужно открыть файл в режиме записи. Если файл существует, режим записи перезапишет информацию в него, если нет — создаст новый файл.

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

import pandas as pd
df = pd.read_csv('output.csv')
df.pivot_table(index=['col_name1'], values='col_name2', columns='col_name3', aggfunc='sum')

Надеюсь, эта статья поможет вам в анализе данных и сделает вашу жизнь немного проще.

Перевод статьи: Automating your daily tasks with Python