วิธีแปลงเอาต์พุต pandas groupby เป็น dataframe


บทช่วยสอนนี้จะอธิบายวิธีการแปลงเอาต์พุตของ pandas GroupBy เป็น Pandas DataFrame

ตัวอย่าง: แปลงเอาต์พุต Pandas GroupBy เป็น DataFrame

สมมติว่าเรามี DataFrame แพนด้าต่อไปนี้ซึ่งแสดงคะแนนที่ผู้เล่นบาสเกตบอลจากทีมต่างๆ:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' position ': ['G', 'G', 'F', 'C', 'G', 'F', 'F', 'F'],
                   ' points ': [5, 7, 7, 10, 12, 22, 15, 10]})

#view DataFrame
print (df)

  team position points
0 AG 5
1 AG 7
2AF 7
3 AC 10
4 BG 12
5 BF 22
6 BF 15
7 BF 10

เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อนับจำนวนผู้เล่น จัดกลุ่มตาม ทีม และ ตำแหน่ง :

 #count number of players, grouped by team and position
group = df. groupby ([' team ', ' position ']). size ()

#viewoutput
print (group)

team position
AC 1
      F 1
      G2
BF 3
      G 1
dtype: int64

จากผลลัพธ์ เราจะเห็นจำนวนผู้เล่นทั้งหมด แบ่งกลุ่มตาม ทีม และ ตำแหน่ง

อย่างไรก็ตาม สมมติว่าเราต้องการให้ผลลัพธ์ของเราแสดงชื่อทีมในแต่ละแถวดังนี้:

 team position count
0 AC 1
1 AF 1
2 AG 2
3 BF 3
4 BG 1

เพื่อให้บรรลุผลนี้ เราสามารถใช้ reset_index() เมื่อรัน GroupBy:

 #count number of players, grouped by team and position
df_out = df. groupby ([' team ', ' position ']). size (). reset_index (name=' count ')

#viewoutput
print (df_out)

  team position count
0 AC 1
1 AF 1
2 AG 2
3 BF 3
4 BG 1

ผลลัพธ์จะปรากฏในรูปแบบที่ต้องการ

โปรดทราบว่าอาร์กิวเมนต์ ชื่อ ใน reset_index() ระบุชื่อของคอลัมน์ใหม่ที่สร้างโดย GroupBy

นอกจากนี้เรายังสามารถยืนยันได้ว่าผลลัพธ์ที่ได้คือ DataFrame ของแพนด้า:

 #display object type of df_out
type (df_out)

pandas.core.frame.DataFrame

หมายเหตุ : คุณสามารถดูเอกสารฉบับเต็มของการดำเนินการ GroupBy ใน pandas ได้ที่นี่

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

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

นุ่น: วิธีคำนวณผลรวมสะสมต่อกลุ่ม
Pandas: วิธีนับค่าที่ไม่ซ้ำตามกลุ่ม
นุ่น: วิธีคำนวณความสัมพันธ์ตามกลุ่ม

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

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