오늘은 외주(?)받은 아웃소싱 프로젝트를 진행
해보려 합니다. 마케팅에 중요한 지표라는 CPI !!
Cost per Install : 설치 건 당 쓴 광고비
파이썬 코드를 이용해서 일자별 CPI trend를
pivot분석하고 엑셀의 조건부 서식까지
자동화하는 것이 목표입니다.
코드를 돌려 생성된 엑셀파일을 딱 열기만
하면 위 그림처럼 되도록!!
일단, 이번 소목표는 os로 폴더 내 raw csv파일을
싹 긁어와 병합하고, 중복 제거하는 단계까지!!
** os : operating system(운영체제)
유저 인터페이스를 제공하는 시스템 소프트웨어

마케팅 분야는 잘 모르지만, 대충 들어보니
Spend 광고비로 지출한 금액
Install 유저가 광고를 보고 설치한 수
CPI = Spend/Install
즉, 위에서 언급했든 유저를 끌어오는데
얼마나 썼냐는 지표입니다.
CPI가 작을수록 광고가 효과적이라는 뜻이죠.
자, 이제 본격적으로 들어가봅시다.
'outsrc_CPI'라는 이름으로 코드 파일을 하나 파고
같은 경로에 raw file들이 담긴 'raw'라는 폴더를
가져옵니다. 이건 의뢰자에게 받았습니다.
raw file은 3개 이상도 되고,
contents의 날짜, 데이터가 중복이여도 됩니다.
import pandas as pd ; import os
def get_csv(directory):
files=os.listdir(directory)
return [file for file in files if file.endswith('.csv')]
list_csv=get_csv('raw') ; print(list_csv) ; df=pd.DataFrame()
for i in list_csv:
df_raw=pd.read_csv('raw/'+i) ; df=pd.concat([df,df_raw])
df=df.drop_duplicates() ; df
엑셀 테이블 기반의 csv 파일은 기본적으로
dataframe의 형태이기 때문에 pandas 모듈을
그리고, os 모듈도 같이 import해줍니다.
폴더 내에 .csv로 끝나는 파일들만 불러오는건
자주 쓰기에 get_csv라는 함수로 만들어
directory(폴더) path에 있는 파일들을 os.listdir해주고
대괄호[ ]로 둘러쌓인 list comprehension을 사용해
.csv로 끝나는 파일들만 필터해서 리스트 형태로
불러오도록 작성합니다.
** 코드 간결성을 위해 리스트 컴프리헨션은 필수!!
[표현식 for 변수 in 반복 가능한 객체 if 조건]
위 함수로 list_csv변수에 raw_file들의 이름들을
리스트에 저장해주고, print(list_csv)로 확인해보면
['crt_file1.csv', 'crt_file2.csv'] 잘 출력되었죠?
다음은 pandas로 빈 dataframe의 틀
df를 생성합니다. pd.DataFrame()
이제, for문을 이용해 list_csv의 raw file들을
하나하나 read_csv로 불러와 concat으로
df에 차곡차곡 아래로 쌓습니다.(중복 有)
이제 for loop을 벗어나 .drop_duplicates()로
중복 데이터를 제거하면~ 끝!!
raw file들을 단 하나의 dataframe으로 중복 없이
만들었고 이제, 이걸 가공 전처리하면 됩니다.

'실무로 배우는 파이썬 > outsrc1. Rumi_marketing' 카테고리의 다른 글
파이썬 간단한 GUI tkinter로 오류 팝업창 만들기(엑셀의 유효성 검사와 비슷한..) (0) | 2025.02.24 |
---|