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

วิธีใช้ Python Pandas เพื่อค้นหาจำนวนรวมของอักขระพิเศษมากกว่าหนึ่งตัวที่มีอยู่ในแต่ละคำในชุดที่กำหนด


ป้อนข้อมูล − สมมติว่าคุณมีซีรีส์

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