Giả sử bạn có một DataFrame, kết quả loại bỏ tiền tố duy nhất của tên thành phố như sau:
Id City 2 3 Kolkata 3 4 Hyderabad 6 7 Haryana 8 9 Kakinada 9 10 Kochin
Để giải quyết bài toán này, chúng ta sẽ làm theo các bước dưới đây:
Giải pháp
- Định nghĩa một DataFrame
- Tạo danh sách rỗng để thêm tất cả ký tự đầu tiên của cột City
l = []
for x in df['City']:
l.append(x[0])
- Tạo danh sách rỗng khác để lọc ký tự trùng lặp
Thiết lập vòng for và điều kiện if để thêm ký tự duy nhất. Định nghĩa như sau:
l1 = []
for j in l:
if l.count(j) > 1:
if j not in l1:
l1.append(j)
- Tạo danh sách rỗng khác. Thiết lập vòng for duyệt giá trị cột City và kiểm tra ký tự đầu có trong l1 thì thêm vào danh sách khác
l2 = []
for x in df['City']:
if x[0] in l1:
l2.append(x)
- Cuối cùng, kiểm tra các phần tử l2 có trong cột City hay không và in DataFrame bằng isin()
df[df['City'].isin(l2)]
Ví dụ
Hãy kiểm tra mã sau để hiểu rõ hơn:
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', 'Bengaluru', '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)])
Đầu ra
Id City 2 3 Kolkata 3 4 Hyderabad 6 7 Haryana 8 9 Kakinada 9 10 Kochin