Как добавить столбец в DataFrame из другого DataFrame в Python?
Введение
Работа с данными в формате DataFrame является базовым но крайне важным навыком для любого data scientist. В библиотеке pandas для Python предоставлены мощные инструменты для работы с табличными данными. В данной статье мы рассмотрим несколько способов добавления столбцов из одного DataFrame в другой, что является частой задачей при объединении и манипуляции данными.
Что такое DataFrame?
DataFrame — это основная структура данных в pandas, представляющая собой двумерную таблицу, похожую на таблицу в базе данных или электронную таблицу в Excel. Каждый столбец в DataFrame может содержать данные разных типов (числа, строки и т.д.), а строки индексируются числовыми или пользовательскими метками. DataFrame является ключевым элементом для выполнения широкого диапазона операций по анализу данных.
import pandas as pd
data = {
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35]
}
df = pd.DataFrame(data)
print(df)
Установка библиотеки pandas
Для работы с DataFrame, необходимо установить библиотеку pandas, если она ещё не установлена. Установить библиотеку можно командой pip install pandas
, а импортировать функцию можно следующий образом:
import pandas as pd
# Установка библиотеки
# pip install pandas
# Импортируем библиотеку pandas для работы с DataFrame.
Создание примеров DataFrame
Для демонстрации будем использовать два DataFrame. df1 будет содержать столбцы ‘A’ и ‘B’, а df2 — столбец ‘C’.
# Создание первого DataFrame
data1 = {'A': [1, 2, 3], 'B': [4, 5, 6]}
df1 = pd.DataFrame(data1)
# Создание второго DataFrame
data2 = {'C': [7, 8, 9]}
df2 = pd.DataFrame(data2)
Создав эти два DataFrame, мы можем приступить к рассмотрению различных методов их объединения.
Способы добавления столбца
Существует несколько способов добавления столбца из одного DataFrame в другой. Рассмотрим подходы с использованием методов concat
, assign
и merge
.
Добавление столбца с использованием concat
Метод pd.concat
позволяет объединить два DataFrame по строкам или по столбцам с помощью параметра axis
. В данном случае, для добавления столбца ‘C’ к ‘df1’ используем axis=1
.
df_combined = pd.concat([df1, df2], axis=1)
print(df_combined)
Этот метод полезен, когда у нас имеется соответствие по индексам обеих таблиц.
Добавление столбца с использованием assign
Метод assign
позволяет добавлять столбец с возможностью одновременного выполнения каких-либо преобразований данных.
df1 = df1.assign(C=df2['C'])
print(df1)
Этот метод отлично подходит, когда нужно добавить столбец с преобразованиями или вычислениями.
Слияние DataFrame с помощью merge
Метод merge
объединяет два DataFrame на основе ключевых столбцов. Это полезно, когда DataFrame содержат общие поля и нужно провести «ссылочное» объединение данных.
df1['key'] = [1, 2, 3]
df2['key'] = [1, 2, 3]
df_merged = pd.merge(df1, df2, on='key')
print(df_merged)
Этот метод позволяет гибко настроить параметры объединения (left
, right
, inner
, outer
join).
Практические примеры
Предположим, что в df1 необходимо добавить столбец с нормализованными данными из столбца ‘B’.
df1['B_norm'] = df1['B'] / df1['B'].max()
print(df1)
Пример демонстрирует, как добавить новый столбец, содержащий нормализованные значения из существующего столбца.
Заключение
В этой статье мы рассмотрели несколько популярных методов добавления столбцов из одного DataFrame в другой с использованием библиотеки pandas. Освоение этих методов позволит вам гибко и эффективно манипулировать данными.
Ссылки
Надеемся, статья была для вас полезной и поможет в дальнейшей работе с данными в Python.