วิธีจัดกลุ่มข้อมูลตามเวลาในนุ่น (พร้อมตัวอย่าง)


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

 df. groupby ([df[' time ']. dt . hour ]). dirty . sum ()

ตัวอย่างนี้จัดกลุ่มค่าตามชั่วโมงลงในคอลัมน์ที่เรียกว่า ชั่วโมง แล้วคำนวณผลรวมของค่าในคอลัมน์ ยอดขาย ในแต่ละชั่วโมง

ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ

ตัวอย่าง: จัดกลุ่มข้อมูลตามเวลาใน Pandas

สมมติว่าเรามี DataFrame แพนด้าต่อไปนี้ซึ่งแสดงจำนวนยอดขายที่เกิดขึ้นในช่วงเวลาต่างๆ ของวันสำหรับร้านค้า:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' time ': ['2022-01-01 01:14:00', '2022-01-01 01:24:15',
                            '2022-01-01 02:52:19', '2022-01-01 02:54:00',
                            '2022-01-01 04:05:10', '2022-01-01 05:35:09'],
                   ' sales ': [18, 20, 15, 14, 10, 9]})

#convert date column to datetime
df[' time '] = pd. to_datetime (df[' time '])

#view DataFrame
print (df)

                 time sales
0 2022-01-01 01:14:00 18
1 2022-01-01 01:24:15 20
2 2022-01-01 02:52:19 15
3 2022-01-01 02:54:00 14
4 2022-01-01 04:05:10 10
5 2022-01-01 05:35:09 9

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

 #group by hours in time column and calculate sum of sales
df. groupby ([df[' time ']. dt . hour ]). dirty . sum ()

time
1 38
2 29
4 10
5 9
Name: sales, dtype: int64

จากผลลัพธ์เราจะเห็นได้ว่า:

  • ชั่วโมงแรกมียอดขายรวม 38 ครั้ง
  • ชั่วโมงที่สองมียอดขายรวม 29 รายการ
  • ชั่วโมงที่สี่มียอดขายทั้งหมด 10 ครั้ง
  • มียอดขายทั้งหมด 9 รายการในช่วงชั่วโมงที่ห้า

โปรดทราบว่าเราสามารถดำเนินการรวมกลุ่มอื่นได้

ตัวอย่างเช่น เราสามารถคำนวณจำนวน ยอดขายเฉลี่ย ต่อชั่วโมงได้:

 #group by hours in time column and calculate mean of sales
df. groupby ([df[' time ']. dt . hour ]). dirty . mean ()

time
1 19.0
2 14.5
4 10.0
5 9.0
Name: sales, dtype: float64

นอกจากนี้เรายังสามารถจัดกลุ่มตามชั่วโมงและนาทีได้หากต้องการ

ตัวอย่างเช่น รหัสต่อไปนี้แสดงวิธีการคำนวณผลรวมของยอดขาย โดยจัดกลุ่มตามชั่วโมงและนาที:

 #group by hours and minutes in time column and calculate mean of sales
df. groupby ([df[' time ']. dt . hour , df[' time ']. dt . minute ]). dirty . mean ()

time time
1 14 18
      24 20
2 52 15
      54 14
4 5 10
5 35 9
Name: sales, dtype: int64

จากผลลัพธ์เราจะเห็นได้ว่า:

  • จำนวนยอดขายเฉลี่ยใน 1 ชั่วโมง 14 นาที คือ 18
  • จำนวนยอดขายเฉลี่ยในช่วง 1 ชั่วโมง 23 นาที คือ 20
  • จำนวนยอดขายเฉลี่ยใน 2 ชั่วโมง 52 นาที คือ 15

และอื่นๆ

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

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

วิธีสร้างช่วงวันที่ใน Pandas
วิธีแยกเดือนจากวันที่ใน Pandas
วิธีแปลงการประทับเวลาเป็นวันที่/เวลาใน Pandas

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

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