2017-05-23 3 views
0

나는 이름 컬럼의 조각 떨어져 DF를 필터링하고 싶은 다음 dataframe에게팬더 필터 dataframe 오프 슬라이스 값

names  brand 
A7   Audi 
TrailBlazer Chevy 
RS8   Audi 
Tahoe  Chevy 
Corvette  Chevy 
GL450  Mercedes 

있습니다. 값의 마지막 문자를 사용하고 싶습니다. 마지막 문자가 숫자라면 '무시'하고 다른 결과 만 반환합니다.

나는 이것을 시도하고있다.

new_df = df[(df['names'] == (lambda x: x['names'].str[-1]).isdigit())] 

이렇게하면 빈 데이터 프레임이 반환됩니다.

나는 이것을 돌려 줄 것으로 기대합니다.

names  brand 
TrailBlazer Chevy 
Tahoe  Chevy 
Corvette Chevy 
+0

예를 들어 예상되는 결과는 무엇입니까? – Allen

답변

2

당신은 조건을 테스트 할 문자열의 마지막 문자에 액세스 할 수 str[-1]을 사용하고 str.isdigit()를 사용할 수 있습니다 경우에 당신이 이름 숫자 값을 가지고,보다 안전하게

df[~df.names.str[-1].str.isdigit()] 
#   names brand 
#1 TrailBlazer Chevy 
#3  Tahoe Chevy 
#4  Corvette Chevy 

또는를 열 :

df[~df.names.astype(str).str[-1].str.isdigit()]