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

주어진 데이터 프레임에서 고유한 접두사를 제거하여 도시 열 요소를 필터링하는 프로그램을 Python으로 작성하십시오.

<시간/>

데이터 프레임이 있다고 가정하고 고유 접두사 도시 이름을 제거한 결과는 다음과 같습니다.

  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])
  • 반복되는 문자를 필터링하려면 다른 빈 목록을 만드세요.

for 루프와 if 조건을 설정하여 고유한 문자를 추가합니다. 아래에 정의되어 있습니다.

l1 = []
for j in l:
   if(l.count(j)>1):
      if(j not in l1):
         l1.append(j)
  • 다른 빈 목록을 만듭니다. for 루프를 설정하여 도시 열 값에 액세스하고 요소의 첫 번째 문자가 l1에 있는지 확인한 다음 다른 목록에 추가합니다.

l2 = []
for x in df['City']:
   if(x[0] in l1):
      l2.append(x)
  • 마지막으로 l2 요소가 도시 열에 있는지 확인하고 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