Когда я работал с некоторыми фреймами данных, было сложно вручную добавлять один и тот же столбец в разные фреймы данных, поэтому я исследовал и нашел шесть различных способов добавить столбец из других фреймов данных в Pandas Python.
Давайте рассмотрим их все по одному подробно с помощью нескольких примеров.
- 1. Используя метод Concat
- 2. Используя функцию Insert()
- 3. Используя функцию merge()
- 4. С помощью функции map()
- 5. Используя метод Assign
- 6. С помощью функции concat()
- Заключение
1. Используя метод Concat
Метод Concat в Pandas используется для объединения двух кадров данных на основе их общего индекса или столбца.
Пример:
import pandas as pd
Employee_name = pd.DataFrame({'ID': [1, 2, 3], 'Name': ['Alice', 'Bob', 'Charlie']})
Employee_age = pd.DataFrame({'ID': [1, 2, 3], 'Age': [25, 30, 35]})
Employee_details = Employee_name.set_index('ID').join(Employee_age.set_index('ID'))
print(Employee_details)
Здесь мы использовали метод set_index() в Python Pandas, чтобы установить значения «ID» в качестве индекса для обоих исходных DataFrame.
Employee_name.set_index('ID').join(Employee_age.set_index('ID'))
Выход:
Name Age ID 1 Alice 25 2 Bob 30 3 Charlie 35
Вот скриншот выполнения кода:

2. Используя функцию Insert()
Insert() в Pandas Python используется для столбца из одного фрейма данных в другой в определенной позиции. В противном случае он аналогичен описанному выше методу соединения.
Давайте посмотрим на пример, демонстрирующий, как использовать функцию Insert() для добавления столбца в фрейм данных в Python:
import pandas as pd
state_info = pd.DataFrame({
'State': ['California', 'Texas', 'New York'],
'Population': [39512223, 28995881, 19453561],
'Area(sq mi)': [423967, 695662, 54555]
})
state_additional_info = pd.DataFrame({
'State': ['California', 'Texas', 'New York'],
'Governor': ['Gavin Newsom', 'Greg Abbott', 'Kathy Hochul']
})
extracted_governor_col = state_additional_info['Governor']
state_info.insert(2, "Governor", extracted_governor_col)
print("First DataFrame after adding the column from the second DataFrame:\n", state_info)
Сначала нам нужно извлечь столбец, который мы хотим добавить в другой DataFrame в Python:
extracted_governor_col = state_additional_info['Governor'] print(type(extracted_governor_col))
Таким образом, мы создали класс pandas.core.series.Series в Python.
state_info.insert(2, "Governor", extracted_governor_col)
Здесь мы вставляем эту серию во вторую позицию в кадре данных state_info с помощью функции Insert() в Pandas Python.
Вывод исходного кода:
First DataFrame after adding the column from the second DataFrame:
State Population Governor Area(sq mi)
0 California 39512223 Gavin Newsom 423967
1 Texas 28995881 Greg Abbott 695662
2 New York 19453561 Kathy Hochul 54555
Следующий снимок экрана был сделан после реализации кода в редакторе Pycharm.

3. Используя функцию merge()
Функция Pandas merge() объединяет два кадра данных на основе общего столбца. Функция merge() выполняет операции соединения, аналогичные реляционным базам данных, таким как SQL.
Пример:
import pandas as pd
employees_df = pd.DataFrame({
'EmployeeID': [1, 2, 3],
'Name': ['John', 'Alice', 'Bob']
})
departments_df = pd.DataFrame({
'EmployeeID': [2, 3, 4],
'Department': ['HR', 'Engineering', 'Marketing']
})
merged_df = pd.merge(employees_df, departments_df, on='EmployeeID', how='left')
print("Merged DataFrame:\n", merged_df)
Здесь мы предоставили on и How параметры функции merge(). Параметр on=’EmployeeID’ принимает имя столбца, который поможет объединить.
Параметр How=’left’ указывает, какие ключи включены в таблицу результатов.
merged_df = pd.merge(employees_df, departments_df, on='EmployeeID', how='left')
Выход:
Merged DataFrame:
EmployeeID Name Department
0 1 John NaN
1 2 Alice HR
2 3 Bob Engineering
После выполнения кода в Pycharm результат отображается на снимке экрана ниже.

4. С помощью функции map()
Функция map() в Pandas используется для поэлементного преобразования одного столбца.
Однако его можно использовать в сочетании со словарем Python для добавления столбца в DataFrame в Pandas.
Пример:
import pandas as pd
state_info = pd.DataFrame({
'State': ['California', 'Texas', 'New York', 'Florida'],
'Population': [39512223, 28995881, 19453561, 21477737],
'Area(sq mi)': [423967, 695662, 54555, 170312],
})
state_regions = {
'California': 'West',
'Texas': 'South',
'New York': 'Northeast',
'Florida': 'South'
}
state_info['Region'] = state_info['State'].map(state_regions)
print("DataFrame with Region Column:\n", state_info)
Выход:
DataFrame with Region Column:
State Population Area(sq mi) Region
0 California 39512223 423967 West
1 Texas 28995881 695662 South
2 New York 19453561 54555 Northeast
3 Florida 21477737 170312 South

5. Используя метод Assign
Метод Assign в Pandas позволяет нам добавлять новый столбец в фрейм данных в виде цепочки.
Мы будем использовать функцию карты, чтобы сопоставить столбец фрейма данных с исходным столбцом.
Пример:
import pandas as pd
Users_dataframe = pd.DataFrame({'ID': [1, 2, 3], 'Name': ['Alice', 'Bob', 'Charlie']})
Age_dataframe = pd.DataFrame({'ID': [2, 3, 4], 'Age': [25, 30, 22]})
Users_dataframe = Users_dataframe.assign(Age=Users_dataframe['ID'].map(Age_dataframe.set_index('ID')['Age']))
print('The extended user dataframe:\n', Users_dataframe)
Мы используем Age=Users_dataframe[‘ID’] для добавления нового столбца в DataFrame. Значение для этого нового будет получено путем сопоставления столбца «ID» кадра данных со значениями «Возраст» во втором кадре данных.
Users_dataframe.assign(Age=Users_dataframe['ID'].map(Age_dataframe.set_index('ID')['Age']))
Выход:
The extended user dataframe:
ID Name Age
0 1 Alice NaN
1 2 Bob 25.0
2 3 Charlie 30.0
После того, как код был реализован в редакторе Pycharm, был сделан снимок экрана ниже, поясняющий результат:

6. С помощью функции concat()
Функция concat в Python может быть полезна для добавления столбцов, когда DataFrames имеют одинаковый индекс.
Вот пример того, как добавить столбец из другого DataFrame в Pandas Python:
import pandas as pd
clients_dataframe = pd.DataFrame({'ID': [1, 2, 3], 'Name': ['John', 'Joe', 'Monica']})
clients_cities = pd.DataFrame({'Cities': ['Texas', 'Florida', 'Alaska']})
concatenated_df = pd.concat([clients_dataframe, clients_cities], axis=1)
print(concatenated_df)
Выход:
ID Name Cities 0 1 John Texas 1 2 Joe Florida 2 3 Monica Alaska
Вот скриншот реализации кода в редакторе Pycharm Python:

Заключение
В Pandas Python существует шесть различных методов добавления столбца из другого фрейма данных, таких как функция Insert(), функция merge(), функция Map(), метод Assign, метод Concat и т. д., что упрощает задачу для любого программиста.