2017-12-04 6 views
0

큰 데이터 프레임에서 str.contains를 사용하고 있는데 str.contains가 str.contains 함수가 True 인 레코드를 반환해야합니다. (데이터 프레임은 수천 줄이고 나는 8 개의 진정한 응답을 찾고있다).Str.Contains는 True 값만 표시합니다.

감사합니다.

filtered_to_df.body.str.contains AA = ('AA')

aa.head (10)
아웃 [312] 15,864 18,040 거짓
거짓
22,576 28,092 거짓
거짓
32800 거짓
33,236 거짓
38,027 거짓
41,222 거짓
46,647 거짓
87,645 거짓
이름 : 몸, DTYPE : 부울

+0

데이터 머리를 표시 – Wen

+0

str.contains는 어떻게 사용합니까? – Dark

+0

추가 - 시리즈에서 loc을 사용하는 방법이 있다고 생각 했습니까? – Tony

답변

0

중요한 차이점 : str.contains 실제로 dataframe 또는 시리즈를 필터링하지 않습니다, 그것은 단지 당신이 그것을에 적용 시리즈와 같은 차원의 부울 벡터를 반환합니다.

예를 들면 : 당신은이 같은 일련의 경우 :이/당신이 진정한 시리즈의 모든 셀에 대한 잘못된 줄 때문에 크기 3의 일련의 반환이에 str.contains("hello")를 사용

my_series = pd.Series(['hello world', 'hello', 'world']) 

print(my_series) 

0 hello world 
1   hello 
2   world 
dtype: object 

를 - 것을 수행 셀에 "hello"라는 단어가 들어 있습니까?

my_series = pd.Series(['hello world', 'hello', 'world']) 

print(my_series.str.contains("hello")) 

0  True 
1  True 
2 False 
dtype: bool 

실제로 데이터 프레임이나 시리즈를 필터링하려면 슬라이스 작업으로 줄 바꿈해야합니다.

my_series[my_series.str.contains("hello")] 

0 hello world 
1   hello 
dtype: object