Pandas: วิธีผสานคอลัมน์ที่ใช้ชื่อเดียวกัน
คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้เพื่อผสานคอลัมน์ใน DataFrame แพนด้าที่ใช้ชื่อคอลัมน์เดียวกัน:
#define function to merge columns with same names together def same_merge (x): return ' , '. join (x[ x.notnull ()]. astype (str)) #define new DataFrame that merges columns with same names together df_new = df. groupby (level= 0 , axis= 1 ). apply ( lambda x: x.apply (same_merge,axis= 1 ))
ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ
ตัวอย่าง: รวมคอลัมน์ที่ใช้ชื่อเดียวกันใน Pandas
สมมติว่าเรามี DataFrame แพนด้าดังต่อไปนี้:
import pandas as pd import numpy as np #createDataFrame df = pd. DataFrame ({' A ': [5, 6, 8, np.nan, 4, np.nan, np.nan], ' A1 ': [np.nan, 12, np.nan, 10, np.nan, 6, 4], ' B ': [2, 7, np.nan, np.nan, 2, 4, np.nan], ' B1 ': [5, np.nan, 6, 15, 1, np.nan, 4]}) #rename columns so there are duplicate column names df. columns = [' A ', ' A ', ' B ', ' B '] #view DataFrame print (df) AABB 0 5.0 NaN 2.0 5.0 1 6.0 12.0 7.0 NaN 2 8.0 NaN NaN 6.0 3 NaN 10.0 NaN 15.0 4 4.0 NaN 2.0 1.0 5 NaN 6.0 4.0 NaN 6 NaN 4.0 NaN 4.0
โปรดสังเกตว่ามีสองคอลัมน์ชื่อ “A” และอีกสองคอลัมน์ชื่อ “B”
เราสามารถใช้โค้ดต่อไปนี้เพื่อรวมคอลัมน์ที่มีชื่อคอลัมน์เดียวกันและต่อค่าเข้าด้วยกันด้วยเครื่องหมายจุลภาค:
#define function to merge columns with same names together def same_merge (x): return ' , '. join (x[ x.notnull ()]. astype (str)) #define new DataFrame that merges columns with same names together df_new = df. groupby (level= 0 , axis= 1 ). apply ( lambda x: x.apply (same_merge,axis= 1 )) #view new DataFrame print (df_new) AB 0 5.0 2.0,5.0 1 6.0,12.0 7.0 2 8.0 6.0 3 10.0 15.0 4 4.0 2.0,1.0 5 6.0 4.0 6 4.0 4.0
DataFrame ใหม่ผสานคอลัมน์ที่มีชื่อเดียวกันและต่อค่าด้วยเครื่องหมายจุลภาค
หากคุณต้องการใช้ตัวคั่นอื่น เพียงแทนที่ตัวคั่นด้วยเครื่องหมายจุลภาคด้วยอย่างอื่นในฟังก์ชัน Same_merge()
ตัวอย่างเช่น รหัสต่อไปนี้แสดงวิธีการใช้ตัวคั่นอัฒภาคแทน:
#define function to merge columns with same names together def same_merge (x): return ' ; '. join (x[ x.notnull ()]. astype (str)) #define new DataFrame that merges columns with same names together df_new = df. groupby (level= 0 , axis= 1 ). apply ( lambda x: x.apply (same_merge,axis= 1 )) #view new DataFrame print (df_new) AB 0 5.0 2.0;5.0 1 6.0;12.0 7.0 2 8.0 6.0 3 10.0 15.0 4 4.0 2.0;1.0 5 6.0 4.0 6 4.0 4.0
DataFrame ใหม่ผสานคอลัมน์ที่มีชื่อเดียวกันและต่อค่าด้วยเครื่องหมายอัฒภาค
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการทั่วไปอื่น ๆ ในแพนด้า:
วิธีลบคอลัมน์ที่ซ้ำกันใน Pandas
วิธีแสดงรายการชื่อคอลัมน์ทั้งหมดใน Pandas
วิธีจัดเรียงคอลัมน์ตามชื่อใน Pandas