Общественный номер: You Er Hut
Автор: Питер
Редактор: Питер
Всем привет, меня зовут Питер~
Графическое слияние данных панд: concat+join+append
В предыдущей статье я представил использование одной из наиболее часто используемых функций слияния в pandas, слияние, В этой статье представлены три другие функции, связанные с операциями слияния:
- concat
- join
- append
Сериализация панд
Эта статья является 15-й статьей библиотеки анализа данных Pandas, добро пожаловать на чтение:
Данные моделирования
Первый заключается в моделировании нескольких разных данных:
import pandas as pd
import numpy as np
concat
Concat также является часто используемой функцией слияния. Ниже приведен конкретный пример, показывающий ее использование.
параметр
pandas.concat(objs, # 合并对象
axis=0, # 合并方向,默认是0纵轴方向
join='outer', # 合并取的是交集inner还是并集outer
ignore_index=False, # 合并之后索引是否重新
keys=None, # 在行索引的方向上带上原来数据的名字;主要是用于层次化索引,可以是任意的列表或者数组、元组数据或者列表数组
levels=None, # 指定用作层次化索引各级别上的索引,如果是设置了keys
names=None, # 行索引的名字,列表形式
verify_integrity=False, # 检查行索引是否重复;有则报错
sort=False, # 对非连接的轴进行排序
copy=True # 是否进行深拷贝
)
Дефолт
По умолчанию используется вертикальное слияние.
axis
Указывает направление слияния
Если кадр данных не существует, он будет отображаться как NaN:
- Отрегулируйте направление слияния в соответствии с фактическими данными, по умолчанию ось = 0.
- Для данных, которых нет в базе данных, вместо этого используйте NaN.
Параметры ignore_index
Сохранять ли исходный индекс таблицы, по умолчанию зарезервирован, если True, автоматически добавляется естественный индекс.
Параметры присоединяются
Укажите, следует ли получить внутреннее пересечение или внешнее объединение, по умолчанию используется внешнее объединение.
Только адресное поле df3 и df4 одинаковое, поэтому оно сохраняется, а остальные отбрасываются:
клавиши параметров
Когда мы устанавливаем перестановку индекса (ignore_index=True), параметр keys недействителен.
имя параметра
Укажите имя индекса каждого уровня
Мы можем проверить индекс df6 и обнаружить, что это иерархический индекс:
Объединить несколько фреймов данных
Слить df1, df2, df5 одновременно
pd.concat([pd.concat([df1,df2],axis=0,ignore_index=True),df5],axis=1)
Реализуется в два шага: сначала слить df1, df2 и слить полученный результат с df5.
join
параметр
Описание параметра с официального сайта:
dataframe.join(other, # 待合并的另一个数据框
on=None, # 连接的键
how='left', # 连接方式:‘left’, ‘right’, ‘outer’, ‘inner’ 默认是left
lsuffix='', # 左边(第一个)数据框相同键的后缀
rsuffix='', # 第二个数据框的键的后缀
sort=False) # 是否根据连接的键进行排序;默认False
Данные моделирования
Чтобы объяснить операцию соединения, снова смоделируйте данные:
Параметры lsuffix, rsuffix
Функция состоит в том, чтобы добавить указанный суффикс
Если не указать, будет сообщено об ошибке:
параметр как
Параметр How по умолчанию имеет значение слева, что сохраняет все поля слева. Используйте NaN для данных, которых нет справа
После изменения вправо сохраните все данные справа:
В результате параметра по умолчанию поле name разделено на name_left и name_right Как объединить поля? ? ?
- Сначала обработайте ключ как индекс строки
- объединить по соединению
- Сбросить индекс через reset_index()
Объединить два данных:
Наконец, функция, которая выполняет сброс индекса:
Есть более простой способ:
Объединить несколько фреймов данных
Используйте соединение для объединения нескольких DataFrames:
Что, если мы хотим сделать это с помощью функции слияния?
Используйте how="outer" для сохранения данных всех полей.
append
Буквально означает «добавлять». Добавьте новую строку в объект фрейма данных.Если имя добавленного столбца отсутствует в объекте фрейма данных, оно будет добавлено как новый столбец.
параметр
DataFrame.append(other,
ignore_index=False,
verify_integrity=False,
sort=False)
Объяснение параметра:
- другое: данные для объединения. Это может быть DataFrame, серия в pandas или структура данных, такая как словарь и список в Python.
- ignore_index: игнорировать ли исходный индекс и генерировать новый индекс натурального числа
- verify_integrity: по умолчанию установлено значение False, если значение равно True, создание того же индекса вызовет ошибку исключения.
- sort: логическое значение, по умолчанию — None. Если столбцы self и other не выровнены, столбцы сортируются, и свойство появляется только в версии 0.23.0.
Данные моделирования
Добавляйте разные типы данных
1. Словарь Python
2. Тип серии
3. Наиболее часто используемый DataFrame
Объединить по умолчанию
Результат стандартного слияния df12 и df13:
Параметры ignore_index
Изменить сгенерированное значение индекса
Параметры verify_integrity
По умолчанию установлено значение False. Если значение равно True, создание того же индекса вызовет ошибку исключения.
Дело боевое
Предположим, что в листе Excel есть 3 листа: лист заказа, лист заказа, информационный лист товара:
1. Форма заказа
2. Список позиций заказа
3. Таблица информации о продукте
Теперь мы связываем содержимое 3-х листов через функцию слияния:
import pandas as pd
import numpy as np
# 读取订单表中的内容
df1 = pd.read_excel("水果订单商品信息3个表.xlsx",sheet_name=0) # 第一个sheet的内容,索引从0开始
df1
# 读取订单商品表
df2 = pd.read_excel("水果订单商品信息3个表.xlsx",sheet_name=1)
# 商品信息表
df3 = pd.read_excel("水果订单商品信息3个表.xlsx",sheet_name="商品信息") # 可以直接指定sheet的名字name,不通过索引
df3
Шаг 1. Объедините таблицу заказов и таблицу позиций заказа.
Шаг 2. Объедините приведенные выше результаты с таблицей информации о продукте.
Когда мы получим приведенные выше результаты, мы сможем выполнить множество требований, приведем два примера:
1. Объем продаж и количество заказов разных фруктов: Групповая статистика и количество заказов по фруктам
2. Продажи фруктов и количество покупателей в разных регионах
Суммировать
Две статьи о слиянии данных pandas, в которых подробно описывается использование 4 функций: слияние, объединение, объединение, добавление; среди нихслияние и объединение являются наиболее часто используемыми. Это могут быть функции, реализующие соединения в SQL. Будь то пересечение, объединение, соединение слева направо или даже полное соединение, его можно реализовать напрямую.
Приведенные выше фактические данные о боевых действиях хранятся в листе Excel. В pandas мы можем получать данные из разных источников: Excel, БД, локальная папка и т. д. для слияния данных, что удобно для последующей реализации наших нужд.Надеюсь, эта статья будет полезна читателям.