Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Viết chương trình Python lọc cột City trong DataFrame bằng cách loại bỏ tiền tố duy nhất


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