Как объединить два столбца в Pandas (с примерами)


Вы можете использовать следующий синтаксис для объединения двух текстовых столбцов в один в кадре данных pandas:

df['new_column'] = df['column1'] + df['column2']

Если один из столбцов еще не является строкой, вы можете преобразовать его с помощью команды astype(str) :

df['new_column'] = df['column1'].astype ( str ) + df['column2']

И вы можете использовать следующий синтаксис для объединения нескольких текстовых столбцов в один:

df['new_column'] = df[['col1', 'col2', 'col3', ...]]. agg(''. join , axis= 1 ) 

В следующих примерах показано, как на практике объединять текстовые столбцы.

Пример 1: объединение двух столбцов

Следующий код показывает, как объединить два текстовых столбца в один в кадре данных pandas:

import pandas as pd

#create dataFrame
df = pd.DataFrame({'team': ['Mavs', 'Lakers', 'Spurs', 'Cavs'],
 'first': ['Dirk', 'Kobe', 'Tim', 'Lebron'],
 'last': ['Nowitzki', 'Bryant', 'Duncan', 'James'],
 'points': [26, 31, 22, 29]})

#combine first and last name column into new column, with space in between 
df['full_name'] = df['first'] + ' ' + df['last']

#view resulting dataFrame
df

 team first last  points full_name
0 Mavs Dirk Nowitzki 26 Dirk Nowitzki
1 Lakers Kobe Bryant  31 Kobe Bryant
2 Spurs Tim Duncan  22 Tim Duncan
3 Cavs Lebron James  29 Lebron James

Мы соединили столбцы имени и фамилии с пробелом между ними, но мы также могли бы использовать другой разделитель, например тире:

#combine first and last name column into new column, with dash in between 
df['full_name'] = df['first'] + ' - ' + df['last']

#view resulting dataFrame
df

 team first last  points full_name
0 Mavs Dirk Nowitzki 26 Dirk - Nowitzki
1 Lakers Kobe Bryant  31 Kobe - Bryant
2 Spurs Tim Duncan  22 Tim - Duncan
3 Cavs Lebron James  29 Lebron - James

Пример 2. Преобразование в текст и объединение двух столбцов

В следующем коде показано, как преобразовать один столбец в текст, а затем соединить его с другим столбцом:

import pandas as pd

#create dataFrame
df = pd.DataFrame({'team': ['Mavs', 'Lakers', 'Spurs', 'Cavs'],
 'first': ['Dirk', 'Kobe', 'Tim', 'Lebron'],
 'last': ['Nowitzki', 'Bryant', 'Duncan', 'James'],
 'points': [26, 31, 22, 29]})

#convert points to text, then join to last name column 
df['name_points'] = df['last'] + df['points'].astype ( str )

#view resulting dataFrame
df

 team first last  points name_points
0 Mavs Dirk Nowitzki 26 Nowitzki26
1 Lakers Kobe Bryant  31 Bryant31
2 Spurs Tim Duncan  22 Duncan22
3 Cavs Lebron James  29 James29

Пример 3: объединение более двух столбцов

Следующий код показывает, как объединить несколько столбцов в один столбец:

import pandas as pd

#create dataFrame
df = pd.DataFrame({'team': ['Mavs', 'Lakers', 'Spurs', 'Cavs'],
 'first': ['Dirk', 'Kobe', 'Tim', 'Lebron'],
 'last': ['Nowitzki', 'Bryant', 'Duncan', 'James'],
 'points': [26, 31, 22, 29]})

#join team, first name, and last name into one column
df['team_and_name'] = df[['team', 'first', 'last']]. agg(''. join , axis= 1 )

#view resulting dataFrame
df

 team first last points team_name
0 Mavs Dirk Nowitzki 26 Mavs Dirk Nowitzki
1 Lakers Kobe Bryant 31 Lakers Kobe Bryant
2 Spurs Tim Duncan 22 Spurs Tim Duncan
3 Cavs Lebron James 29 Cavs Lebron James

Дополнительные ресурсы

Pandas: как найти разницу между двумя столбцами
Pandas: как найти разницу между двумя строками
Pandas: как сортировать столбцы по имени

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.