2017-01-03 2 views
0

나는 데이터 세트에서 남성 인 소수의 사람들을 유지하는 데 관심이 있습니다. Python이 X, Y, Z 수컷을 유지하고 나머지 수컷을 버리려고한다는 것을 어떻게 알 수 있습니까? 나는 조 스미스와 롭 돌을 유지하고 다른 수컷을 모두 제거 할, 수컷의보관할 행을 식별하여 데이터 프레임에서 행 제거

import pandas as pd 
df1 = pd.DataFrame({'Salary':[8700,6300,4700,2100,3400], 'Gender':['Male','Female','Male','Female','Male']},index=pd.Series(['Joe Smith', 'Jane Doe', 'Rob Dole', 'Sue Pam', 'Jack Li'], name='Name')) 

print df1 

      Gender Salary 
Name      
Joe Smith Male 8700 
Jane Doe Female 6300 
Rob Dole  Male 4700 
Sue Pam Female 2100 
Jack Li  Male 3400 

을 dataframe에 예를 들어, 나는이 dataframe 시작 말한다. 성별 식별자를 사용하여 수천 명의 이름으로이를 수행하는 가장 빠른 방법은 무엇입니까? 나는 수천 명의 사람들 중에 계속 지키고 싶은 약 20-25 개의 이름 목록을 가지고있다. 내 최종 dataframe은 다음과 같아야합니다

  Gender Salary 
Name      
Joe Smith Male 8700 
Jane Doe Female 6300 
Rob Dole  Male 4700 
Sue Pam Female 2100 

답변

1

당신의 상태는 다음과 같습니다

cond=(df1.Gender=='Female') | (df1.index.isin(['Joe Smith','Rob Dole'])) 

과 의지 단순히 df1[cond].

+0

겠습니까 나는 두 개 이상의 남녀 식별자가있는 경우이 작동합니까? 예를 들어 남성, 여성 이외에도 알 수 없음 및 답변 없음이 있습니다. – HelloMello27

+0

'df1.Gender! ='Male ''은 다른 기준을 제시합니다. –

+0

작품, 고마워요! – HelloMello27

0

또는 당신이 .query() 방법을 사용할 수 있습니다 :

In [14]: df1.query("Gender in ['Female','Unknown'] or Name in ['Joe Smith','Rob Dole']") 
Out[14]: 
      Gender Salary 
Name 
Joe Smith Male 8700 
Jane Doe Female 6300 
Rob Dole  Male 4700 
Sue Pam Female 2100 
관련 문제