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

Python - วิธีจัดกลุ่ม Pandas DataFrame ตามเดือน?


เราจะจัดกลุ่ม Pandas DataFrame โดยใช้ groupby . เลือกคอลัมน์ที่จะใช้โดยใช้ฟังก์ชัน grouper เราจะจัดกลุ่มรายเดือนและคำนวณผลรวมของราคาจดทะเบียนรายเดือนสำหรับตัวอย่างของเราที่แสดงด้านล่างสำหรับบันทึกการขายรถยนต์

ขั้นแรก สมมติว่าต่อไปนี้คือ Pandas DataFrame ของเราที่มีสามคอลัมน์ -

dataFrame =pd.DataFrame ( { "รถยนต์":["Audi", "Lexus", "Tesla", "Mercedes", "BMW", "Toyota", "Nissan", "Bentley", "Mustang" ], "Date_of_Purchase":[ pd.Timestamp("2021-06-10"), pd.Timestamp("2021-07-11"), pd.Timestamp("2021-06-25"), pd.Timestamp( "2021-06-29"), pd.Timestamp("2021-03-20"), pd.Timestamp("2021-01-22"), pd.Timestamp("2021-01-06"), pd. Timestamp("2021-01-04"), pd.Timestamp("2021-05-09") ], "Reg_Price":[1000, 1400, 1100, 900, 1700, 1800, 1300, 1150, 1350] }) 

ใช้ Grouper เพื่อเลือกคอลัมน์ Date_of_Purchase ภายในฟังก์ชัน groupby() ความถี่ความถี่ถูกตั้งค่า 'M' เพื่อจัดกลุ่มตามเดือน -

print("\nจัดกลุ่ม Dataframe ตามเดือน...\n",dataFrame.groupby(pd.Grouper(key='Date_of_Purchase', axis=0, freq='M')).sum()) 

ตัวอย่าง

ต่อไปนี้เป็นรหัส -

นำเข้าแพนด้าเป็น pd# dataframe โดยมีคอลัมน์ใดคอลัมน์หนึ่งเป็น Date_of_PurchasedataFrame =pd.DataFrame({ "Car":["Audi", "Lexus", "Tesla", "Mercedes", "BMW", "Toyota" , "Nissan", "Bentley", "Mustang"], "Date_of_Purchase":[ pd.Timestamp("2021-06-10"), pd.Timestamp("2021-07-11"), pd.Timestamp(" 2021-06-25"), pd.Timestamp("2021-06-29"), pd.Timestamp("2021-03-20"), pd.Timestamp("2021-01-22"), pd.Timestamp ("2021-01-06"), pd.Timestamp("2021-01-04"), pd.Timestamp("2021-05-09") ], "Reg_Price":[1000, 1400, 1100, 900, 1700, 1800, 1300, 1150, 1350] })print"DataFrame...\n",dataFrame# Grouper to select Date_of_Purchase column within groupby functionprint"\nGroup Dataframe by month...\n",dataFrame.groupby(pd) .Grouper(key='Date_of_Purchase', axis=0, freq='M')).sum()

ผลลัพธ์

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ คำนวณราคาลงทะเบียนของทุกเดือน -

DataFrame... รถ Date_of_Purchase Reg_Price0 Audi 2021-06-10 10001 Lexus 2021-07-11 14002 Tesla 2021-06-25 11003 Mercedes 2021-06-29 9004 BMW 2021-03-20 17005 Toyota 2021-01- 22 18006 Nissan 2021-01-06 13007 Bentley 2021-01-04 11508 Mustang 2021-05-09 1350 Group Dataframe by month... Reg_PriceDate_of_Purchase2021-01-31 4250.02021-02-28 NaN2021-03-31 1700.02021-04-30 NaN2021-05-31 1350.02021-06-30 3000.2021-07-31 1400.0