Pandas: วิธีรวมแถวที่มีค่าคอลัมน์เดียวกัน
คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้เพื่อรวมแถวที่มีค่าคอลัมน์เดียวกันใน Pandas DataFrame:
#define how to aggregate various fields agg_functions = {' field1 ': ' first ', ' field2 ': ' sum ', ' field ': ' sum '} #create new DataFrame by combining rows with same id values df_new = df. groupby (df[' id ']). aggregate (agg_functions)
ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ
ตัวอย่าง: รวมแถวที่มีค่าคอลัมน์เดียวกันใน Pandas
สมมติว่าเรามี DataFrame แพนด้าต่อไปนี้ซึ่งมีข้อมูลเกี่ยวกับการขายและการคืนสินค้าที่ทำโดยพนักงานหลายคนของบริษัท:
import pandas as pd #create dataFrame df = pd. DataFrame ({' id ': [101, 101, 102, 103, 103, 103], ' employee ': ['Dan', 'Dan', 'Rick', 'Ken', 'Ken', 'Ken'], ' sales ': [4, 1, 3, 2, 5, 3], ' returns ': [1, 2, 2, 1, 3, 2]}) #view DataFrame print (df) id employee sales returns 0 101 Dan 4 1 1 101 Dan 1 2 2 102 Rick 3 2 3 103 Ken 2 1 4 103 Ken 5 3 5 103 Ken 3 2
เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อรวมแถวที่มีค่าเดียวกันในคอลัมน์ id จากนั้นจึงรวมคอลัมน์ที่เหลือ:
#define how to aggregate various fields agg_functions = {' employee ': ' first ', ' sales ': ' sum ', ' returns ': ' sum '} #create new DataFrame by combining rows with same id values df_new = df. groupby (df[' id ']). aggregate (agg_functions) #view new DataFrame print (df_new) employee sales returns id 101 Dan 5 3 102 Rick 3 2 103 Ken 10 6
DataFrame ใหม่รวมแถวทั้งหมดจาก DataFrame ก่อนหน้าที่มีค่าเดียวกันในคอลัมน์ id แล้วคำนวณผลรวมของค่าในคอลัมน์ การขาย และ การคืนสินค้า
หมายเหตุ : โปรดดู เอกสารประกอบของ pandas สำหรับรายการการรวมกลุ่มทั้งหมดที่พร้อมใช้งานกับฟังก์ชัน GroupBy()
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ในแพนด้า:
นุ่น: วิธีค้นหาความแตกต่างระหว่างสองคอลัมน์
นุ่น: วิธีค้นหาความแตกต่างระหว่างสองบรรทัด
Pandas: วิธีจัดเรียงคอลัมน์ตามชื่อ