สมมติว่าคุณมี dataframe ผลลัพธ์สำหรับการลบชื่อเมืองที่นำหน้าเฉพาะคือ
Id City 2 3 Kolkata 3 4 Hyderabad 6 7 Haryana 8 9 Kakinada 9 10 Kochin
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนด้านล่าง -
วิธีแก้ปัญหา
-
กำหนดดาต้าเฟรม
-
สร้างรายการว่างเพื่อผนวกค่าคอลัมน์เมืองทั้งหมดเป็นอักขระตัวแรก
l = [] for x in df['City']: l.append(x[0])
-
สร้างรายการว่างอีกรายการเพื่อกรองอักขระที่ซ้ำกัน
ตั้งค่าสำหรับวนซ้ำและถ้าเงื่อนไขที่จะผนวกอักขระเฉพาะของ มีการกำหนดไว้ด้านล่าง
l1 = [] for j in l: if(l.count(j)>1): if(j not in l1): l1.append(j)
-
สร้างรายการว่างอื่น ตั้งค่าให้วนซ้ำเพื่อเข้าถึงค่าคอลัมน์เมืองและตรวจสอบว่าองค์ประกอบแรกมีอักขระอยู่ใน l1 แล้วจึงผนวกเข้ากับรายการอื่น
l2 = [] for x in df['City']: if(x[0] in l1): l2.append(x)
-
สุดท้าย ตรวจสอบว่าองค์ประกอบ l2 มีอยู่ในคอลัมน์เมืองหรือไม่ และพิมพ์ dataframe โดยใช้ isin()
df[df['City'].isin(l2)]
ตัวอย่าง
มาตรวจสอบรหัสต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
import pandas as pd df = pd.DataFrame({'Id':[1,2,3,4,5,6,7,8,9,10], 'City':['Chennai','Delhi','Kolkata','Hyderabad','Pune','Mumbai','Haryana','B engaluru','Kakinada','Kochin'] }) l = [] for x in df['City']: l.append(x[0]) l1 = [] for j in l: if(l.count(j)>1): if(j not in l1): l1.append(j) l2 = [] for x in df['City']: if(x[0] in l1): l2.append(x) print(df[df['City'].isin(l2)])
ผลลัพธ์
Id City 2 3 Kolkata 3 4 Hyderabad 6 7 Haryana 8 9 Kakinada 9 10 Kochin