Pandas: วิธีรวมค่าจากหลายคอลัมน์ให้เป็นหนึ่งเดียว


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

วิธีที่ 1: รวมค่าตามลำดับคอลัมน์เริ่มต้น

 df[' coalesce '] = df. bfill (axis= 1 ). iloc [:, 0]

วิธีที่ 2: รวมค่าโดยใช้ลำดับคอลัมน์เฉพาะ

 df[' coalesce '] = df[[' col3 ', ' col1 ', ' col2 ']]. bfill (axis= 1 ). iloc [:, 0]

ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีในทางปฏิบัติกับ Pandas DataFrame ต่อไปนี้:

 import pandas as pd
import numpy as np

#createDataFrame
df = pd. DataFrame ({' points ': [np.nan, np.nan, 19, np.nan, 14],
                   ' assists ': [np.nan, 7, 7, 9, np.nan],
                   ' rebounds ': [3, 4, np.nan, np.nan, 6]})

#view DataFrame
print (df)

   points assists rebounds
0 NaN NaN 3.0
1 NaN 7.0 4.0
2 19.0 7.0 NaN
3 NaN 9.0 NaN
4 14.0 NaN 6.0

วิธีที่ 1: รวมค่าตามลำดับคอลัมน์เริ่มต้น

รหัสต่อไปนี้แสดงวิธีการผสานค่าจากคอลัมน์จุด ช่วยเหลือ และรีบาวด์ให้เป็นคอลัมน์เดียว โดยใช้ค่าแรกที่ไม่ใช่ศูนย์ในสามคอลัมน์เป็นค่าที่ผสาน:

 #create new column that contains first non-null value from three existing columns 
df[' coalesce '] = df. bfill (axis= 1 ). iloc [:, 0]

#view updated DataFrame
print (df)

   points assists rebounds coalesce
0 NaN NaN 3.0 3.0
1 NaN 7.0 4.0 7.0
2 19.0 7.0 NaN 19.0
3 NaN 9.0 NaN 9.0
4 14.0 NaN 6.0 14.0

นี่คือวิธีการเลือกค่าในคอลัมน์ ผสาน :

  • บรรทัดแรก: ค่าแรกที่ไม่ใช่ศูนย์คือ 3.0
  • บรรทัดที่สอง: ค่าแรกที่ไม่ใช่ศูนย์คือ 7.0
  • บรรทัดที่สาม: ค่าแรกที่ไม่ใช่ศูนย์คือ 19.0
  • บรรทัดที่สี่: ค่าแรกที่ไม่ใช่ศูนย์คือ 9.0
  • บรรทัดที่ห้า: ค่าแรกที่ไม่ใช่ศูนย์คือ 14.0

วิธีที่ 2: รวมค่าโดยใช้ลำดับคอลัมน์เฉพาะ

รหัสต่อไปนี้แสดงวิธีการผสานค่าในสามคอลัมน์โดยการวิเคราะห์คอลัมน์ตามลำดับต่อไปนี้: Assists, Rebounds, Points

 #coalesce values in specific column order
df[' coalesce '] = df[[' assists ', ' rebounds ', ' points ']]. bfill (axis= 1 ). iloc [:, 0]

#view updated DataFrame
print (df)

   points assists rebounds coalesce
0 NaN NaN 3.0 3.0
1 NaN 7.0 4.0 7.0
2 19.0 7.0 NaN 7.0
3 NaN 9.0 NaN 9.0
4 14.0 NaN 6.0 6.0

ต่อไปนี้คือตรรกะที่ใช้ในการตัดสินใจว่าจะวางค่าใดในคอลัมน์ ผสาน :

  • หากค่าในคอลัมน์ ตัวช่วย ไม่เป็นศูนย์ ให้ใช้ค่านั้น
  • มิฉะนั้น หากค่าในคอลัมน์ ตีกลับ ไม่เป็นศูนย์ ให้ใช้ค่านั้น
  • มิฉะนั้น หากค่าในคอลัมน์ คะแนน ไม่เป็นศูนย์ ให้ใช้ค่านั้น

หมายเหตุ : คุณสามารถดูเอกสารฉบับเต็มสำหรับฟังก์ชัน bfill() ได้ที่นี่

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการทั่วไปอื่น ๆ ในแพนด้า:

วิธีรวมสองคอลัมน์ใน Pandas
วิธีรวมคอลัมน์เฉพาะใน Pandas
วิธีจัดเรียงตามหลายคอลัมน์ใน Pandas

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

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