Преобразование данных с использованием Pandas

PythonPythonBeginner
Практиковаться сейчас

This tutorial is from open-source community. Access the source code

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В анализе данных часто приходится сталкиваться с наборами данных, которые не расположены так, как нам нужно. Переформатирование данных означает процесс изменения способа организации данных в строки и столбцы. В этом практическом занятии мы рассмотрим некоторые ключевые методы в Pandas для переформатирования данных, включая Pivot, Stack, Unstack, Melt, Кросс-таблицы, Тилирование, Факторизация и Взрыв.

Советы по работе с ВМ

После запуска ВМ нажмите в левом верхнем углу, чтобы переключиться на вкладку Notebook и получить доступ к Jupyter Notebook для практики.

Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook загрузится. Проверка операций не может быть автоматизирована из-за ограничений Jupyter Notebook.

Если вы сталкиваетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.

Импорт необходимых библиотек и создание DataFrame

Сначала импортируем необходимые библиотеки и создадим DataFrame для наших примеров.

import pandas as pd
import numpy as np

## Create DataFrame
np.random.seed([3, 1415])
n = 20
cols = np.array(["key", "row", "item", "col"])
df = cols + pd.DataFrame((np.random.randint(5, size=(n, 4)) // [2, 1, 2, 1]).astype(str))
df.columns = cols
df = df.join(pd.DataFrame(np.random.rand(n, 2).round(2)).add_prefix("val"))

Переворачивание с помощью одиночных агрегаций

Pivot - один из ключевых методов для переформатирования данных в Pandas. Он позволяет преобразовать ваши данные, чтобы можно было их рассматривать с разных углов.

## Pivot df with the mean of val0
df.pivot_table(values="val0", index="row", columns="col", aggfunc="mean", fill_value=0)

Переворачивание с помощью нескольких агрегаций

Мы также можем выполнять несколько агрегаций при использовании метода Pivot.

## Pivot df with the mean and sum of val0
df.pivot_table(values="val0", index="row", columns="col", aggfunc=["mean", "sum"])

Кросс-таблицы

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

## Cross tabulation between row and col
df.pivot_table(index="row", columns="col", fill_value=0, aggfunc="size")

Резюме

Поздравляем! Вы завершили лабораторную работу по преобразованию данных с использованием Pandas. Вы можете практиковаться в более лабораторных работах в LabEx, чтобы улучшить свои навыки.