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

เขียนโปรแกรม Python นับปีอธิกสุรทิน (Leap Years) ใน DataFrame

สมมติว่าคุณมี DataFrame ที่มีคอลัมน์ year และ days และต้องการนับจำนวนปีอธิกสุรทิน

วิธีแก้ปัญหา

    1. สร้าง DataFrame 2. กรองข้อมูลที่เป็นปีอธิกสุรทิน: year % 4 == 0 และ days == 366 3. นับจำนวนแถวที่กรองได้ด้วย len()

ตัวอย่างโค้ด

import pandas as pd

data = {'year': [2002, 2004, 2012, 2018, 2020],
        'days': [365, 366, 366, 365, 366]}

df = pd.DataFrame(data)
print("DataFrame:\n", df)

# กรองปีอธิกสุรทิน: หาร 4 ลงตัว และมี 366 วัน
leap_years = df[(df['year'] % 4 == 0) & (df['days'] == 366)]

print("\nปีอธิกสุรทินที่พบ:")
print(leap_years)

print("\nจำนวนปีอธิกสุรทิน:", len(leap_years))

ผลลัพธ์

DataFrame:
   year  days
0  2002   365
1  2004   366
2  2012   366
3  2018   365
4  2020   366

ปีอธิกสุรทินที่พบ:
   year  days
1  2004   366
2  2012   366
4  2020   366

จำนวนปีอธิกสุรทิน: 3

คำอธิบาย:

  • กฎปีอธิกสุรทิน: หาร 4 ลงตัว (ยกเว้นปีที่หาร 100 ลงตัว แต่ไม่หาร 400 ลงตัว)
  • ตัวอย่างนี้ตรวจสอบเงื่อนไขง่ายๆ: year % 4 == 0 และ days == 366
  • & คือ element-wise AND สำหรับ Series ต้องมีวงเล็บครอบแต่ละเงื่อนไข
  • len(df) นับจำนวนแถวใน DataFrame ที่กรองแล้ว