ป้อนข้อมูล −
สมมติว่าคุณมีซีรีส์
0 14 1 16 2 30 3 49 4 80
ผลผลิต −
ผลลัพธ์ที่ได้องค์ประกอบสี่เหลี่ยมจัตุรัสที่สมบูรณ์แบบคือ
0 4 1 16 3 49
โซลูชันที่ 1
เราสามารถใช้วิธีกรองนิพจน์ทั่วไปและฟังก์ชันแลมบ์ดาเพื่อค้นหาค่ากำลังสองที่สมบูรณ์แบบ
-
กำหนดซีรีส์
-
ใช้วิธีกรองแลมบ์ดาเพื่อตรวจสอบว่าค่าเป็นกำลังสองสมบูรณ์หรือไม่ มีการกำหนดไว้ด้านล่าง
l = [14,16,30,49,80] data=pd.Series([14,16,30,49,80]) result =pd.Series(filter(lambda x: x==int(m.sqrt(x)+0.5)**2,l))
-
สุดท้าย ตรวจสอบรายการค่าของชุดข้อมูลโดยใช้ฟังก์ชัน isin()
ตัวอย่าง
import pandas as pd import math as m l = [4,16,30,49,80] data = pd.Series(l) print(data) lis = [] for i in range(len(data)): for j in data: if(data[i]==int(m.sqrt(j)+0.5)**2): lis.append(data[i]) print(“Perfect squares in the series: \n”, data[data.isin(lis)])
ผลลัพธ์
Given series: 0 4 1 16 2 30 3 49 4 80 dtype: int64 Perfect Squares in the series: 0 4 1 16 3 49 dtype: int64
โซลูชันที่ 2
ตัวอย่าง
import re import math as m l = [14,16,30,49,80] data = pd.Series([14,16,30,49,80]) print(“Given series:\n”, data) result = pd.Series(filter(lambda x: x==int(m.sqrt(x)+0.5)**2,l)) print(data[data.isin(result)])
ผลลัพธ์
Given series: 0 14 1 16 2 30 3 49 4 80 dtype: int64 Perfect squares: 1 16 3 49 dtype: int64