Функция Pandas join() действует как важный атрибут, когда один DataFrame является таблицей поиска. Например, он содержит большую часть данных, а дополнительные данные этого DataFrame присутствуют в каком-то другом DataFrame.
Что такое функция join() в Pandas?
join() — это библиотечная функция Pandas, используемая для объединения разных фреймов данных в Python. Например, функция join() объединяет столбцы с другим DataFrame либо в индексе, либо в ключевом столбце. Функцию join() можно определить как объединение стандартных полей разных фреймов данных. Столбцы, которые содержат общие значения и используются для объединения, называются ключами соединения.
Чтобы присоединиться к различным фреймам данных в Pandas на основе индекса или ключа столбца, используйте метод join().
Чтобы определить ключ соединения, нам нужно найти обязательные поля данных, общие для двух фреймов данных, и столбцы в этом фрейме данных, которые совпадают.
Эффективно объединяйте несколько объектов DataFrame по индексу одновременно, передавая список. Мы можем либо соединить DataFrames вертикально, либо бок о бок. Под вертикальным мы подразумеваем объединение фреймов данных по столбцам, а рядом — индексацию.
Следовательно, удобно объединять столбцы двух фреймов данных с разными индексами в один фрейм данных на основе общих атрибутов. Мы также можем объединить данные, передав им список.
Синтаксис
|
1 |
DataFrame.join(other, on=None, how=’left’, lsuffix=”, rsuffix=”, sort=False) |
Параметры
Функция Pandas join() содержит шесть параметров:
- other: это DataFrame или список или серия, которую мы передаем. Индекс должен быть таким же, как один из столбцов. Если серия передается, ее имя должно использоваться в имени столбца в результирующем кадре данных.
- on: необязательный параметр, который относится к массивам или значениям str. Он ссылается на столбец или имя уровня индекса в вызывающем DataFrame для присоединения к индексу. В противном случае он присоединяется к индексу по индексу.
Одним из важных условий является то, что если присутствует несколько значений, другой кадр данных также должен быть мультииндексирован.
- how: относится к тому, как обрабатывать операцию на обоих объектах. Значение по умолчанию для этого параметра — «left». Различные типы значений этого параметра: «left», «right», «outer», «inner».
- left: он использует вызывающий индекс или столбец DataFrame, независимо от того, что указано.
- right: использует другие индексы для использования.
- outer: он формирует объединение индекса или столбца вызывающего фрейма(как указано) с другим индексом DataFrame и сортирует его лексикографически.
- inner: образует пересечение индекса или столбца вызывающего фрейма (как определено) с другим индексом или столбцом фрейма данных, сохраняя порядок вызывающего фрейма.
- lsuffix: относится к строковому объекту, который имеет значение по умолчанию. Он использует суффикс из перекрывающихся столбцов левого фрейма.
- rsuffix: Он относится к строковому объекту, который имеет значение по умолчанию. Он использует суффикс из перекрывающихся столбцов правого фрейма.
- sort: состоит из логического значения и лексикографически сортирует полученный DataFrame.
Пример программы на Pandas DataFrame join()
Напишем программу, показывающую работу метода join().
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# app.py import pandas as pd data_set1 = pd.DataFrame({'Roll_no': ['A1', 'A2', 'A3', 'A4', 'A5', 'A6'], 'Marks_in_Maths': ['98', '85', '43', '66', '47', '74']}) print(data_set1) data_set2 = pd.DataFrame({'Roll_no': ['A1', 'A2', 'A3'], 'Marks_in_Science': ['66', '74', '83']}) print(data_set2) joined_data = data_set1.join(data_set2.set_index('Roll_no'), on="Roll_no") print(joined_data) |
Выход:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
python3 app.py Roll_no Marks_in_Maths 0 A1 98 1 A2 85 2 A3 43 3 A4 66 4 A5 47 5 A6 74 Roll_no Marks_in_Science 0 A1 66 1 A2 74 2 A3 83 Roll_no Marks_in_Maths Marks_in_Science 0 A1 98 66 1 A2 85 74 2 A3 43 83 3 A4 66 NaN 4 A5 47 NaN 5 A6 74 NaN |
Здесь мы видим, что мы создали два DataFrames, первый из которых получил 6 номеров бросков и оценки по математике для всех 6 учеников.
Второй DataFrame состоит из научных оценок студентов из бросков с 1 по 3. Следовательно, результирующий DataFrame состоит из объединенных значений обоих DataFrames со значениями, не упомянутыми в NaN (отметки по науке из бросков с 4 по 6).
