Вы можете использовать следующий синтаксис для объединения двух текстовых столбцов в один в кадре данных 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: как сортировать столбцы по имени