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

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

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