ป้อนข้อมูล − สมมติว่าคุณมีซีรีส์
0 fruits!! 1 *cakes* 2 $nuts 3 #drinks dtype: object
ป้อนข้อมูล − ผลลัพธ์สำหรับจำนวนรวมของอักขระพิเศษมากกว่าหนึ่งตัวในซีรีส์คือ 2
ให้เราลองค้นหาคำตอบที่แตกต่างกันสำหรับคำถามนี้
โซลูชันที่ 1
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนด้านล่าง -
-
กำหนดซีรีส์
-
สร้างรายการอักขระพิเศษของค่า
-
ตั้งค่าเริ่มต้นของอักขระพิเศษและค่าจำนวนอักขระพิเศษรวมเป็น 0
-
สร้าง for loop และเข้าถึงค่าทั้งหมดใน Series ทีละรายการ และสร้างเงื่อนไข if เพื่อเปรียบเทียบค่าตามอักขระพิเศษดังนี้ -
for i in data: chars_count = 0 for j in list(i): if j in special_char: chars_count = chars_count+1
-
ตั้งค่าเงื่อนไข if และตรวจสอบค่าการนับ หากนับ> 1 ให้พิมพ์จำนวนรวม
ถูกกำหนดไว้ด้านล่าง -
if(chars_count>1): total_count = total_count+1 print(total_count)
โซลูชันที่ 2
หรือเราอาจใช้วิธีกรองนิพจน์ทั่วไปและฟังก์ชันแลมบ์ดาเพื่อค้นหาจำนวนรวม
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนด้านล่าง -
-
กำหนดชุด
-
ใช้วิธีตัวกรองแลมบ์ดาเพื่อตรวจสอบอินพุตตามอักขระพิเศษ ()
-
หาความยาวมากกว่าหนึ่ง ถูกกำหนดไว้ด้านล่าง -
l=["fruits!!","*cakes*","$nuts","#drinks"] data=pd.Series(filter(lambda x:1<len(re.findall(r"\W",x)),l))
ตัวอย่าง
ให้เราดูการใช้งานเพื่อความเข้าใจที่ดีขึ้น -
import pandas as pd import string l = ["Fruits!!","*Cakes*","$Nuts","#Drinks"] data = pd.Series(l) chars=string.punctuation special_char=list(chars) total_count = 0 for i in data: chars_count = 0 for j in list(i): if j in special_char: chars_count = chars_count+1 if(chars_count>1): total_count = total_count+1 print(total_count)
โซลูชันที่ 3
ตัวอย่าง
import pandas as pd import re l=["fruits!!","*cakes*","$nuts","#drinks"] data=pd.Series(filter(lambda x:1<len(re.findall(r"\W",x)),l)) print("count:",len(data))
ผลลัพธ์
ผลลัพธ์ของโปรแกรมข้างต้นมีดังนี้ −
2