Computer >> Máy Tính >  >> Lập trình >> Python

Viết mã Python để lọc tên palindrome trong khung dữ liệu nhất định

Kết quả để in tên palindrome là -

Palindrome names are:
   Id   Name
0   1   bob
2   3   hannah

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các cách tiếp cận dưới đây -

Giải pháp 1

  • Xác định khung dữ liệu

  • Tạo khả năng hiểu danh sách bên trong vòng lặp set for để truy cập tất cả các giá trị từ cột df [‘Name’] bằng cách sử dụng biến i và đặt điều kiện if để so sánh i ==i [::- 1] sau đó thêm giá trị i vào danh sách

l = [ i for i in df['Name'] if(i==i[::-1])]
  • Cuối cùng, hãy kiểm tra các giá trị danh sách có trong cột df [‘Name’] bằng cách sử dụng isin ()

df[df['Name'].isin(l)]

Ví dụ

Hãy kiểm tra đoạn mã sau để hiểu rõ hơn -

import pandas as pd
data = {'Id':[1,2,3,4,5],'Name':['bob','peter','hannah','james','david']}
df = pd.DataFrame(data)
print("DataFrame is:\n", df)
l = [ i for i in df['Name'] if(i==i[::-1])]
print("Palindrome names are:\n", df[df['Name'].isin(l)])

Đầu ra

DataFrame is:
   Id  Name
0   1  bob
1   2  peter
2   3  hannah
3   4  james
4   5  david
Palindrome names are:
  Id Name
0 1  bob
2 3  hannah

Giải pháp 2

  • Xác định khung dữ liệu

  • Áp dụng hàm lọc lambda để so sánh df [‘Tên’] từng giá trị có hàm được đảo ngược trả về kết quả giống nhau hay không. Nếu các giá trị được khớp thì hãy lưu trữ nó dưới dạng danh sách kết quả.

result = list(filter(lambda x:(x=="".join(reversed(x))),df['Name']
  • Cuối cùng, hãy kiểm tra các giá trị danh sách có trong cột df [‘Name’] bằng cách sử dụng isin ()

df[df['Name'].isin(result)]

Ví dụ

Hãy kiểm tra đoạn mã sau để hiểu rõ hơn -

import pandas as pd
data = {'Id':[1,2,3,4,5],'Name':['bob','peter','hannah','james','david']}
df = pd.DataFrame(data)
print("DataFrame is:\n", df)
result = list(filter(lambda x:(x=="".join(reversed(x))),df['Name']))
print("Palindrome names are:\n", df[df['Name'].isin(result)])

Đầu ra

DataFrame is:
   Id  Name
0   1  bob
1   2  peter
2   3  hannah
3   4  james
4   5  david
Palindrome names are:
  Id Name
0 1  bob
2 3  hannah