كيفية الجمع بين عمودين في الباندا (مع أمثلة)
يمكنك استخدام بناء الجملة التالي لدمج عمودين نصيين في عمود واحد في 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: دمج عمودين
يوضح التعليمة البرمجية التالية كيفية دمج عمودين نصيين في عمود واحد في pandas 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
مصادر إضافية
الباندا: كيفية العثور على الفرق بين عمودين
الباندا: كيفية العثور على الفرق بين خطين
الباندا: كيفية فرز الأعمدة حسب الاسم