2017-05-22 2 views
0

가 dataframe가 data라고 내가 가진 또 다른 컬럼의 값으로 시작을 기반으로 값은 ngram입니다.슬라이스 dataframe은 하나 개의 컬럼이 같은 모양

  • 카테고리 : 나는 다음과 같은 경우가 있다면 그래서 예를 들어, 침대
  • N- 그램 : 침대

는 해당 인스턴스는 결과 dataframe에서 제외되어야한다.

T-SQL에서

, 나는 다음과 같은 쿼리를 사용 (가장 좋은 방법은되지 않을 수도 있습니다,하지만 그것은 작동) : 나는 이것에 조금을 읽고, 내 최고의 시도가

SELECT 
    * 
FROM mytable 
WHERE category NOT LIKE ngram+'%'; 

:

data[data.category.str.startswith(data.ngram.str) == True] 

하지만이 모든 행을 반환하거나

답변

0
#use df.apply to filter the rows with category starts with ngram. 
data[data.apply(lambda x: x.category.startswith(x.ngram), axis=1)] 
+0

헤이, 덕분에 완벽하게 작동 (== True를 사용하여) 역을 수행하지 않습니다. 마지막으로 사용한 코드에는 문자열 변환과 반전이 있습니다. data [~ (data.apply (lambda x : str (x.category) .lower(). startswith (str (x.ngram) .lower()) , axis = 1))]' – smj