สมมติว่าคุณมี 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 ที่กรองแล้ว