วิธีรวมสองคอลัมน์ใน pandas (พร้อมตัวอย่าง)


คุณสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อรวมคอลัมน์ข้อความสองคอลัมน์ให้เป็นคอลัมน์เดียวใน DataFrame ของแพนด้า:

 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: รวมสองคอลัมน์เข้าด้วยกัน

รหัสต่อไปนี้แสดงวิธีการรวมคอลัมน์ข้อความสองคอลัมน์เป็นคอลัมน์เดียวใน DataFrame ของแพนด้า:

 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: วิธีจัดเรียงคอลัมน์ตามชื่อ

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *