pandas.DataFrame.join
-
DataFrame.join(other, on=None, how='left', lsuffix='', rsuffix='', sort=False)[source] -
Объединение столбцов с другим DataFrame по индексу или по столбцу-ключа. Эффективное объединение нескольких объектов DataFrame по индексу одновременно путём передачи списка.
Параметры: other : DataFrame, Series со значением поля имени или список DataFrame
Индекс должен быть похожим на один из столбцов в этом DataFrame. Если передаётся Series, его атрибут name должен быть установлен, и это будет использовано как имя столбца в результирующем объединённом DataFrame
on : имя, кортеж/список имён или массив-подобный объект
Имя(а) столбца или уровня индекса в вызывающем объекте для объединения с индексом в
other, в противном случае объединяется индекс-на-индекс. Если указано несколько значений,otherDataFrame должен иметь MultiIndex. Можно передать массив в качестве ключа объединения, если он ещё не содержится в вызываемом DataFrame. Похоже на операцию Excel VLOOKUPhow : {‘left’, ‘right’, ‘outer’, ‘inner’}, по умолчанию: ‘left’
Как обрабатывать операцию с двумя объектами.
- left: использовать индекс вызываемого DataFrame (или столбец, если указан параметр on)
- right: использовать индекс другого DataFrame
- outer: сформировать объединение индекса вызываемого DataFrame (или столбца, если указан on) с индексом другого DataFrame и отсортировать его лексикографически
- inner: сформировать пересечение индекса вызываемого DataFrame (или столбца, если указан on) с индексом другого DataFrame, сохраняя порядок вызываемого DataFrame
lsuffix : строка
Суффикс для использования из перекрывающихся столбцов левого DataFrame
rsuffix : строка
Суффикс для использования из перекрывающихся столбцов правого DataFrame
sort : булево значение, по умолчанию False
Отсортировать результирующий DataFrame лексикографически по ключу объединения. Если False, порядок ключа объединения зависит от типа объединения (ключевое слово how)
Возвращаемое значение: -
joined : DataFrame
См. также
-
DataFrame.merge - Для операций столбец(ы)-на-столбец(ы)
Примечания
Параметры on, lsuffix и rsuffix не поддерживаются при передаче списка объектов DataFrame
Поддержка указания уровней индексов в качестве параметра
onбыла добавлена в версии 0.23.0Примеры
>>> caller = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3', 'K4', 'K5'], ... 'A': ['A0', 'A1', 'A2', 'A3', 'A4', 'A5']})>>> caller A key 0 A0 K0 1 A1 K1 2 A2 K2 3 A3 K3 4 A4 K4 5 A5 K5>>> other = pd.DataFrame({'key': ['K0', 'K1', 'K2'], ... 'B': ['B0', 'B1', 'B2']})>>> other B key 0 B0 K0 1 B1 K1 2 B2 K2Объединение DataFrames, используя их индексы.
>>> caller.join(other, lsuffix='_caller', rsuffix='_other')
>>> A key_caller B key_other 0 A0 K0 B0 K0 1 A1 K1 B1 K1 2 A2 K2 B2 K2 3 A3 K3 NaN NaN 4 A4 K4 NaN NaN 5 A5 K5 NaN NaNЕсли мы хотим объединить, используя столбцы ключей, нам нужно установить ключ как индекс как в вызываемом, так и в другом DataFrame. Объединённый DataFrame будет иметь ключ в качестве индекса.
>>> caller.set_index('key').join(other.set_index('key'))>>> A B key K0 A0 B0 K1 A1 B1 K2 A2 B2 K3 A3 NaN K4 A4 NaN K5 A5 NaNЕщё один вариант объединения по столбцам ключей - использовать параметр on. DataFrame.join всегда использует индекс другого DataFrame, но мы можем использовать любой столбец в вызываемом DataFrame. Этот метод сохраняет исходный индекс вызываемого DataFrame в результате.
>>> caller.join(other.set_index('key'), on='key')>>> A key B 0 A0 K0 B0 1 A1 K1 B1 2 A2 K2 B2 3 A3 K3 NaN 4 A4 K4 NaN 5 A5 K5 NaN
© 2008–2012, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/0.23.4/generated/pandas.DataFrame.join.html