Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

วิธีทำ groupby บน MultiIndex ใน Pandas


MultiIndex Data Frame คือ Data Frame ที่มี index มากกว่าหนึ่งตัว สมมติไฟล์ CSV บน Desktop มีข้อมูลดังภาพ:

วิธีทำ groupby บน MultiIndex ใน Pandas

เริ่มต้น import pandas และอ่านไฟล์ CSV:

import pandas as pd 
df = pd.read_csv("C:/Users/amit_/Desktop/sales.csv") 
print(df)

ตั้งค่าคอลัมน์ 'Car' และ 'Place' เป็น index:

df = df.set_index(['Car', 'Place'])

ตอนนี้ DataFrame เป็น MultiIndex DataFrame ที่มี 'Car' และ 'Place' เป็น index

ใช้ groupby บน MultiIndex DataFrame:

res = df.groupby(level=['Car'])['UnitsSold'].mean() 
print(res)

ตัวอย่าง

import pandas as pd 
df = pd.read_csv("C:/Users/amit_/Desktop/sales.csv") 
print(df) 
# set Car and Place columns of the DataFrame as index 
df = df.set_index(['Car', 'Place']) 
# sorting 
df.sort_index() 
# groupby on multiindex datafram 
res = df.groupby(level=['Car'])['UnitsSold'].mean() 
print(res)

ผลลัพธ์

     Car       Place  Sold 
0   BMW       Delhi    95 
1   Mercedes  Hyderabad 80 
2 Lamborgini Chandigarh 80 
3   Audi     Bangalore  75 
4   Mercedes  Hyderabad 90 
5   Porsche   Mumbai    90 
6 RollsRoyce Mumbai    95 
7   BMW       Delhi    50 
Car 
Audi        75.8 
BMW         72.5 
Lamborgini  80.0 
Mercedes    85.0 
Porsche     90.0 
RollsRoyce  95.0 
Name: UnitsSold, dtype: float64