-
카테고리
-
세부 분야
데이터 분석
-
해결 여부
미해결
'상호명이 '파스쿠찌|잠바주스'가 아닌 것만 가져오세요.'에 궁금한 점이 있습니다.
20.08.16 18:12 작성 조회수 147
1
안녕하세요, 선생님. 강의 잘 듣고 있습다.
복습하다 중간에 궁금한 점이 생겨 질문드립니다,
03_frainchise_eda_input 파일에서요.
# "상권업종대분류명"이 "학문/교육"이 아닌 것만 가져옵니다. 에서는 아래처럼 작성을 하는 것으로 배웠습니다.
df_bread = df_bread[df_bread['상권업종대분류명'] != '학문/교육'].copy()
그리고 아래의 문항 중 # 상호명이 '파스쿠찌|잠바주스'가 아닌 것만 가져오세요. 에서
df_bread[~df_bread['상호명'].str.contains('파스쿠찌|잠바주스')]로 알려주셨는데요.
이것의 shape을 찍어보면 (812, 12)가 오는데 아래처럼
df_bread[df_bread['상호명'] != '파스쿠찌|잠바주스']로 했을 때 는 (823, 12)로 row의 개수가 달라서 왜 다른지 궁금하여 문의드립니다.
저는 두 개의 row 개수가 같을 거라고 생각을 했는데 달라서 어떻게 다른 것인지 궁금합니다.
항상 좋은 강의 감사드립니다 :)
답변을 작성해보세요.
1
1
박조은
지식공유자2020.08.16
안녕하세요.
좋은 질문을 해주셨네요.
== 연산은 완전히 일치하는 데이터를 가져오게 됩니다.
아래 파스쿠찌와 잠바주스가 들어간 상호명을 가져오게 했는데요.
"파스쿠찌", "잠바주스" 라고 표기되지 않고 "파리크라상파스쿠찌홍" 등으로 표기된 것을 볼 수 있습니다.
.str.contains() 는 일부 텍스트가 일치하면 True로 연산을 하게 되고 다시 데이터프레임으로 감싸면 해당 데이터만 가져옵니다.
여기에서는 조건식 앞에 ~ 표시를 했기 때문에 해당 텍스트가 들어가지 않는 데이터만 가져왔습니다.
그래서 == 연산 혹은 != 연산을 사용할 때는 내부에 | 를 적어주게 되면 정규표현식의 or 로 인식하지 않고 문자 그대로 | 로 해석하게 됩니다.
감사합니다 :)
0
답변 3