본문 바로가기

서비스 기획75

[췻쉿] DataFrame으로 모든 데이터 모으는 방법 Pandas DataFrame cheatsheet 데이터 분석을 한층 편리하게 해 줄 여러 가지 기능들 내가 아직 외우지 못한 기능을 한 번에 찾을 수 있게 모아놨다. 1) DataFrame을 합친 후 (merge 전/후) 중복 제거하기: df.drop_duplicates() df.drop_duplicates(subset=['user_id','content_id','date'], keep='first', inplace=True) drop_duplicates subset = [열1, 열2, ...] 어떤 열을 기준으로 중복을 검사할 것인지 정하기. 여러 개 설정 가능. 디폴트는 전체 열 keep = {‘first’, ‘last’, False} 중복값이 있을 경우 어떤 값을 살릴 것인지 False = 중복값.. 2022. 12. 24.
주니어 PM의 SQL & 파이썬 실무 적용기 올해 8월, 지금껏 배웠던 SQL & 파이썬을 실무에 적용할 기회가 왔습니다. 약 4개월간의 저의 SQL & 파이썬 실무 적용기를 하나의 글로 정리해보고자 합니다. 초보의 관문을 지난 지 오래인 전문가는 모르는 초심자의 고민을, 다른 초심자는 답할 수 있다고 생각해요. 초보의 관문을 지나는 저와 다른 모든 PM 동료에게 이 글을 바칩니다. 이 글은 두 가지 질문에 답변을 드려요. Q1. PM이 SQL & 파이썬을 배우면 뭐가 좋아요? Q2. SQL은 그렇다 쳐도... 파이썬까지 알아야 할까요? 저도 1년 넘게 사내/사외 교육으로 SQL & 파이썬을 배우면서, '내가 굳이 시간을 들여서 이걸 공부할 필요가 있을까?'라는 고민이 있었어요. 배운 걸 바로 실무에 적용할 일이 없었기 때문이죠. 사내 데이터 분석.. 2022. 11. 21.
주니어 PM의 데이터 분석 학습기 주니어 PM이 데이터 분석을 공부하는 이유 데이터 분석을 공부해야겠다고 마음먹은 것은 PM 2년 차인 2020년이었습니다. 사실 대학을 다닐 때까지만 해도 저는 수학과는 거리가 먼 사람이라고 생각했어요. 고등학교 시절에 수리 영역과 씨름할 때, 대학교를 가면 더 이상 수학과 마주하지 않아도 된다는 사실을 위안 삼아서일까요. 대학 교양 수업도 가능하면 수학이나 과학과 관련이 없는 과목을 들었습니다. 수학을 멀리하던 제 삶에 숫자들이 슬금 머리를 내민 것은 대학원 때였습니다. 정량 리서치 결과를 논문으로 쓰기 위해선 통계를 공부해야 했죠. 그때까지만 해도, 논문 쓰는 데 필요한 기본 통계 지식과 SPSS 쓰는 방법만 배우면 끝일 거라고 생각했습니다. 입사 후 1년이 지났을 때, 불운하게도 사수 매니저님이 다.. 2022. 8. 31.
인당 1일 평균 영상 시청 시간 구하기 (Python) 드디어 데이터 분석 공부했던 것을 실무에 써먹을 때가 왔다! 영상 시청 앱의 인당 1일 평균 체류시간을 구하기 위한 Python 코드를 정리했다. 평균 체류 시간은 일일 콘텐츠 시청 duration의 합으로 구했다. 1) 메인 코드 For문으로 DataFrame 채우기 - 각 날짜의 콘텐츠 시청 duration의 평균을 구할 수 있다. - .mean()과 .median()으로 평균값과 중간값을 구했다. import pandas as pd #데이터 df = pd.DataFrame({'date':[20220801, 20220801, 20220801,20220802,20220802,20220802], 'duration':[10,20,30,40,50,60]}) #df3: 새로운 DF 만들기 df3 = pd.Da.. 2022. 8. 26.
영등위 API에서 등급정보 자동으로 불러오기 0. 영상물등급위원회 API를 사용하게 된 배경 넷플릭스를 보면, 영상을 재생하자마자 좌측 상단에 등급정보가 팝업 형태로 뜬다. 이 기능을 구현하려면 넷플릭스는 영상물별 등급정보를 따로 들고 있어야 한다. 등급 정보를 불러오기 위해 영상물등급위원회(이하 영등위)의 API를 사용하는 편이 좋다. 연령등급 외에 등급분류번호, 등급분류일자, 내용 정보(폭력성, 선정성 등)가 있으므로 모든 데이터를 수기로 입력하기 어렵기 때문이다. 새로 나온 영화에만 등급 정보를 붙어야 한다면 제목을 기준으로 하나씩 검색해서 붙이면 되니까 큰 문제는 없다. 그러나 많은 수의 영상 콘텐츠에 등급 정보를 붙여야 한다면, 어떻게 자동화를 할 수 있을까? 나는 다음과 같이 자동화할 수 있다고 생각했다. 참고로 영등위 등급분류 검색 사.. 2022. 7. 30.
[코드잇] 데이터 사이언스 입문 수강 완료! 코드잇 "데이터 사이언스 입문" 수료 후기 코드잇 "데이터 사이언스 입문" 클래스를 수료했다. 만세! 기말평가는 95점을 맞았다. (무엇이 틀렸는지 알고 싶은데 안 알려주네..ㅎㅎ) 수료까지 약 2주 정도 소요됐다. 주말에 시간 내서 조금 열심히 하고 주중에 2번 정도 1시간 정도 하니까 금방 했다. 가장 시간이 오래 걸린 건 "데이터 프레임 다루기"의 마지막 퀴즈였다. 지금 생각해도 난이도가 참 높았다. 크롤링 과제도 쉽진 않았는데, 그래도 가장 어려운 과제는 데이터 프레임 다루기였다. 코드인 "데이터 사이언스 입문" 클래스는 파이썬 수업을 몇 번 들은 후 복습 용도로 듣기 좋은 수업이었다. Datacamp처럼 퀴즈가 조금만 더 많았으면 학습에 용이하지 않았을까 하는 약간의 아쉬움이 있다. 🔥 코드잇에.. 2022. 7. 18.
[코드잇] 2. 데이터 분석과 시각화: 타이타닉 EDA 퀴즈 데이터 분석과 시각화 과정 중 EDA(탐색적 데이터 분석) 수업 마지막에는 "타이타닉 EDA 퀴즈"가 있다. titanic.csv 데이터를 탐색한 후, 보기 7개 중에서 맞는 것 고르는 퀴즈를 풀기 위해 답을 찾은 방법을 정리했다. 1) 타이타닉 승객은 30대와 40대가 가장 많다 (X) - 나이대별 히스토그램으로 시각화했다. - 기존 파일에는 "나이대" 컬럼이 존재하지 않아 'Age_cat' 컬럼을 만들어서 추가했다. #1. 20,30이 제일 많음 ==> X sns.distplot(df['Age_cat']) - 나이대 구분 컬럼인 'Age_cat' 만든 방법 #나이대 가져오는 함수 만들기 def age_cat(age): age = (age//10)*10 return age Age_cat = df.Age.. 2022. 7. 14.
[코드잇] 1. 데이터 프레임 다루기 코드잇 "데이터 사이언스 입문" 과정을 수강 중이다. 해당 코스 "2강 데이터 프레임 다루기"의 마지막 퀴즈 3개는 갑자기 높아진 난이도를 자랑한다. 😅 이틀에 걸쳐서 여러 가지 방법을 찾으면서 공부한 내용을 정리했다. 1. DataFrame 조건에 맞는 행의 값만 변경하기 1.1. 조건에 맞는 행의 특정 열의 값 변경하기 #너무 길면 헷갈리니까 조건은 미리 정의하기 condition = (df['course name'] == 'information technology') & (df['year']==1) #조건에 맞는 값만 변경하기 df.loc[condition,'status']= 'not allowed' #df.loc[조건, '열 이름'] = '바꿀 값' 1.2. 조건에 맞는 행의 모든 값 변경하기 #.. 2022. 7. 5.
데이터 분석 - 대검찰청의 범죄자 전과 데이터 (2019) 전체 161개 범죄 중 범죄자수 합계 Top-15 범죄 대상으로 데이터 분석 흥미로운 사실 - 전과 9범 이상이 생각보다 굉장히 많음 - 전과 9범 이상 범죄자가 초범보다 많은 범죄는 "근로기준법"과 "신용업무경매" - 다만, 전과 9범 이상은 10범, 11범 등 다량의 범죄 이력이 있는 사람을 모두 합친 숫자라는 점을 고려해야 함 - 초범 비율이 가장 높은 범죄는 "성폭력", "전자금융거래법", "교통사고처리특례법" - 해당 범죄는 재범률이 낮지만, 범죄를 저지를만해 보이지 않는 일반인 같은(?) 사람도 저지를 수 있는 범죄라고도 해석할 수 있음 원본 데이터 1. 각 범죄 분류 별 범죄자수 합계 (barplot) 합계 열 'total'을 추가한 후에 해당 열의 값으로 그래프 그림 2. 히트맵 (seab.. 2022. 6. 13.