Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

주어진 데이터 프레임에서 회문 이름을 필터링하는 Python 코드 작성

<시간/>

회문 이름 인쇄 결과는 -

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

이 문제를 해결하기 위해 다음 접근 방식을 따릅니다 -

해결책 1

  • 데이터 프레임 정의

  • i 변수를 사용하여 df['Name'] 열의 모든 값에 액세스하기 위해 루프 내에서 목록 이해를 생성하고 i==i[::-1]를 비교할 조건을 설정한 다음 목록에 i 값을 추가합니다.

l = [ i for i in df['Name'] if(i==i[::-1])]
  • 마지막으로 isin()을 사용하여 df['Name'] 열에 있는 목록 값을 확인합니다.

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

예시

더 나은 이해를 위해 다음 코드를 확인합시다 -

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)])

출력

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

해결책 2

  • 데이터 프레임 정의

  • 람다 필터 함수를 적용하여 df['Name'] 각 값을 반전된 함수와 비교하면 동일한 결과가 반환되는지 여부가 반환됩니다. 값이 일치하면 결과 목록으로 저장합니다.

result = list(filter(lambda x:(x=="".join(reversed(x))),df['Name']
  • 마지막으로 isin()을 사용하여 df['Name'] 열에 있는 목록 값을 확인합니다.

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

예시

더 나은 이해를 위해 다음 코드를 확인합시다 -

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)])

출력

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