연관 키워드 경쟁 강도 분석하기 - 데이터 정제하기
비주얼 스튜디오 코드에서 새로운 파일을 만들고, 파일명을 'step_2_2.py'로 지정합니다. 다음 코드를 입력하고, 대화형 창에서 실행하면, 'output' 폴더에 'step_2_2.csv' 파일을 생성됩니다.
ch08/step_2_2.py
from pathlib import Path
import pandas as pd
from step_1_1 import OUT_DIR # 이전에 작성한 모듈을 불러옵니다.
from step_2_1 import OUT_2_1
OUT_2_2 = OUT_DIR / f"{Path(__file__).stem}.csv"
def data_cleaning(): # 08
df_raw = pd.read_csv(OUT_2_1, dtype="string") # 09
f_pc_cnt = df_raw["검색수PC"].str.contains("<") # "<" 문자열 포함 여부 # 10
f_mo_cnt = df_raw["검색수M"].str.contains("<") # 11
df_sliced = df_raw.loc[(~f_pc_cnt) & (~f_mo_cnt)] # NOT(~)과 AND(&) 조건 # 12
df_sliced = df_sliced.astype({"검색수M": int, "클릭률M": float}) # 14
f_mo_cnt_cond = df_sliced["검색수M"] >= 10_000 # 검색수 조건 # 15
f_mo_rate_cond = df_sliced["클릭률M"] >= 1.0 # 클릭률 조건
df_cond = df_sliced.loc[(f_mo_cnt_cond) & (f_mo_rate_cond)] # AND(&) 조건 # 17
df_sorted = df_cond.sort_values(["검색수M"], ascending=[False]) # 정렬 # 18
df_sorted.to_csv(OUT_2_2, index=False) # CSV로 저장
if __name__ == "__main__":
data_cleaning() # 데이터 정제
08 데이터 정제하는 함수 data_cleaning()를 정의합니다.
09 pandas 패키지의 함수 read_csv()를 사용하여 OUT_2_1 경로의 CSV 파일을 불러와 데이터프레임을 생성합니다. 효율적인 데이터 처리를 위해 매개변수 dtype에 'string'을 전달하여 모든 데이터를 문자열로 변환합니다.
10~11 함수 str.contains()를 사용하여 '검색수PC' 열과 '검색수M' 열에서 '<' 문자열 포함 여부를 확인합니다. '<'이 포함되면 True, 그렇지 않으면 False를 반환합니다.
12 데이터프레임의 ioc 연산자를 사용하여 '<' 문자열이 포함되지 않는 행을 추출합니다. 이때 ~ 연산자는 True와 False를 반대로 바꾸고, & 연산자는 두 조건이 모두 True인 경우에만 True, 그 외에는 False를 반환합ㄴ니다.
14 함수 astype()를 사용하여 검색수M 열과 클릭률M 열의 데이터 타입을 문자열에서 각각 정수와 부동소수점수로 변환합니다.
15 검색수M 열 겂이 10,000 이상이면 True, 그렇지 않으면 False를 반환합니다.
17 데이터프레임의 loc 연산자를 사용하여 검색수 조건과 클릭률 조건을 만족하는 데이터를 추출합니다.
18 함수 sort_values()를 사용하여 검색수M 열을 기준으로 내림차순 정렬입니다.
'step_1_3.json'을 비주얼 스튜디오 코드에서 열고, 'step_2_1.csv' 파일과 비교합니다. '<' 문자 열이 삭제되고, 데이터 건수도 줄어든 것을 알 수 있습니다.
| 키워드,검색수PC,검색수M,클릭수PC,클릭수M,클릭률PC,클릭률M,광고수,경쟁강도 나이키,226000,777200,10,높음,141.4,2997.0,0.07,0.42 나이키운동화,22900,249300,10,높음,162.2,4423.8,0.78,2.02 자라키즈,16400,165000,6,중간,45.3,1021.5,0.31,0.7 |
'프로그래밍 언어 > Python' 카테고리의 다른 글
| 연관 키워드 경쟁 강도 분석 및 웹 앱 만들기 (0) | 2026.04.01 |
|---|---|
| 연관 키워드 경쟁 강도 분석하기 - 키워드별 경쟁 강도 분석하기 (1) | 2026.03.29 |
| 연관 키워드 경쟁 강도 분석하기 - 연관 키워드 수집하기 (1) | 2026.03.23 |
| 네이버 쇼핑 연관 키워드 검색하기 - 연관 키워드 검색하기 (0) | 2026.03.20 |
| 네이버쇼핑 연관 키워드 검색하기 - 네이버 쇼핑 검색하기 (0) | 2026.03.17 |