9,3K подписчиков

📈 Загрузка данных с помощью Pandas: Пособие для начинающих

358 прочитали

С этой научитесь приемам импорта данных различных форматов с помощью Pandas с помощью нескольких строк кода. Мы будем учиться импортировать базы данных SQL, листы Excel, таблицы HTML, CSV и файлы JSON на примерах.

Pandas - это простой в использовании инструмент анализа данных с открытым исходным кодом, который широко используется в аналитике данных, инженерии данных, науке о данных и машинном обучении. Он поставляется с мощными функциями, такими как очистка и манипуляции с данными, поддержка популярных форматов данных и визуализация данных с помощью matplotlib. Большинство студентов, изучающих науку о данных, учатся только импортировать CSV, но на работе вам приходится иметь дело с несколькими форматами данных, и все может усложниться, если вы делаете это впервые. В этом руководстве мы сосредоточимся на импорте наборов данных CSV, Excel, SQL, HTML и JSON.

SQL

Для выполнения SQL-запросов нам необходимо загрузить базу данных SQLite для Kaggle Mental Health in the Tech Industry под лицензией CC BY-SA 4.0. База данных содержит три таблицы: "Вопросы", "Ответы" и "Опрос".

С этой  научитесь приемам импорта данных различных форматов с помощью Pandas с помощью нескольких строк кода.

Для импорта данных с SQL-сервера нам нужно установить соединение (SQLAlchemy connectable / sqlite3), написать SQL-запрос и использовать функцию Pandas read_sql_query() для преобразования вывода в кадр данных. В нашем случае мы сначала подключим mental_health.sqlite с помощью пакета sqlite3, а затем передадим объект в функцию read_sql_query(). Последним этапом будет написание запроса для импорта всех столбцов из таблицы Question. Если вы новичок в SQL, я советую вам изучить основы, пройдя бесплатный курс: Learn SQL | Codecademy.

import pandas as pd

import sqlite3

# Prepare a connection object
# Pass the Database name as a parameter
conn = sqlite3.connect("mental_health.sqlite")

# Use read_sql_query method
# Pass SELECT query and connection object as parameter
pdSql = pd.read_sql_query("SELECT * FROM Question", conn)
# display top 5 rows
pdSql.head()

Мы успешно преобразовали SQL-запрос в фрейм данных Pandas. Это так просто.

С этой  научитесь приемам импорта данных различных форматов с помощью Pandas с помощью нескольких строк кода.-2

HTML

Веб-скрейпинг - сложная и трудоемкая работа в мире технологий. Вы будете использовать Beautiful Soup, Selenium и Scrapy для извлечения и очистки данных HTML. Используя Pandas read_html(), вы можете пропустить все шаги и напрямую импортировать табличные данные с веб-сайта во фрейм данных. Это так просто. В нашем случае мы будем скрести веб-сайт COVID-19 Vaccination Tracker, чтобы извлечь таблицы с данными о вакцинации COVID19.

С этой  научитесь приемам импорта данных различных форматов с помощью Pandas с помощью нескольких строк кода.-3

Просто используя pd.read_html(), мы смогли извлечь данные с сайта.

df_html = pd.read_html(
"https://www.pharmaceutical-technology.com/covid-19-vaccination-tracker/"
)[0]

df_html.head()

Наш первоначальный вывод был списком, и чтобы преобразовать список в кадр данных, мы использовали [0] в конце. Это позволит отобразить только первое значение в списке.

Примечание: Для получения идеального результата необходимо поэкспериментировать с исходным результатом.

С этой  научитесь приемам импорта данных различных форматов с помощью Pandas с помощью нескольких строк кода.-4

CSV

CSV - самый распространенный формат файлов в науке о данных. Он прост и может быть доступен множеству пакетов Python. Первое, чему вы научитесь на курсах по науке о данных, - это импортировать CSV-файл. В нашем случае мы используем Kaggle's Bike Sharing Dataset под лицензией CC0: Public Domain. Значения в CSV разделяются запятыми, как показано ниже.

С этой  научитесь приемам импорта данных различных форматов с помощью Pandas с помощью нескольких строк кода.-5

Мы будем использовать функцию read_csv() для импорта набора данных в Pandas dataframe. Эта функция довольно мощная, так как мы можем разбирать даты, удалять пропущенные значения и выполнять множество действий по очистке данных всего одной строкой кода.

data_csv = pd.read_csv("day.csv")
data_csv.head()

Мы успешно загрузили CSV-файл и отобразили первые пять строк.

С этой  научитесь приемам импорта данных различных форматов с помощью Pandas с помощью нескольких строк кода.-6

Excel

Таблицы Excel по-прежнему популярны среди профессионалов в области данных и бизнес-аналитики. В нашем случае мы будем преобразовывать набор данных U.S. Presidents and Debt dataset by kevinnayar under CC BY 2.0 license в формат .xlsx с помощью Microsoft Excel. Наш файл Excel содержит два листа, но рамка данных Pandas представляет собой плоскую таблицу, поэтому мы будем использовать имя листа для импорта выбранных листов в рамку данных Pandas.

С этой  научитесь приемам импорта данных различных форматов с помощью Pandas с помощью нескольких строк кода.-7

Мы будем использовать функцию read_excel() для импорта нашего набора данных:

Первый параметр - путь к файлу.

Второй параметр - имя_листа: в нашем случае мы импортируем второй лист. Номера листов начинаются с 0.

Третий - index_col: поскольку наш набор данных содержит индексные колонки, чтобы избежать дублирования, мы укажем index_col.

data_excel = pd.read_excel("US_Presidents.xlsx",sheet_name = 1, index_col = "index")
data_excel.head()
С этой  научитесь приемам импорта данных различных форматов с помощью Pandas с помощью нескольких строк кода.-8

JSON

Чтение файлов JSON - довольно сложная задача, поскольку существует несколько форматов, которые необходимо понимать. Иногда Pandas не может импортировать вложенные файлы JSON, поэтому нам приходится выполнять ручные действия, чтобы идеально импортировать файл. JSON - самый распространенный формат файлов в технологической отрасли. Его предпочитают как веб-разработчики, так и инженеры по обработке данных. В нашем случае мы собираемся загрузить набор данных Spotify Recommendation под лицензией CC0: Public Domain. Набор данных содержит JSON-файлы хороших и плохих песен. В данном примере мы будем использовать только файл good.json. Как мы видим, мы имеем дело с вложенным набором данных.

С этой  научитесь приемам импорта данных различных форматов с помощью Pandas с помощью нескольких строк кода.-9

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

df_json = pd.read_json("good.json")
df_json.head()

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

С этой  научитесь приемам импорта данных различных форматов с помощью Pandas с помощью нескольких строк кода.-10

Сначала мы будем импортировать необработанные файлы JSON с помощью пакета json и выбирать только подмножество audio_features. Наконец, мы преобразуем JSON в датафрейм Pandas с помощью функции json_normalize().

Все прошло успешно, и мы наконец-то преобразовали JSON в фрейм данных.

import json

with open('good.json') as data_file:
data = json.load(data_file)

df = pd.json_normalize(data["audio_features"])
df.head()
С этой  научитесь приемам импорта данных различных форматов с помощью Pandas с помощью нескольких строк кода.-11

Код и все датасеты можно найти здесь: Deepnote.