본문 바로가기

분류 전체보기

(131)
[240213] 유저ID와 방문시작시간으로 세션ID/평균세션시간 생성(feat. ECDF) * 자료 출처: Kaggle - Google Analytics Customer Revenue Prediction 1. 문제 배경 - GA 로그데이터로 유저별 평균 세션 시간을 ECDF로 시각화 - 평균 세션 시간 데이터가 따로 제공되지 않아 User_id와 방문시작시간 칼럼을 활용해 세션ID 생성 2. 세션ID 생성 - 각 유저의 방문시작시간의 차가 30분 이내인 값에 동일한 세션ID 부여 - 방문시작시간의 차가 30분 이상일 경우 다른 세션ID 부여 - 1) 방문시작시간으로 정렬하고, 2) diff로 전 행과의 시간 차이가 30분 미만인지 체크하고, 3) cumsum으로 id 부여 ## sessoin_id 생성하기 # 1. 시간, 방문자id 기준으로 정렬한 데이터 프레임 생성 df_sorted = df..
[240205주차] 본캠프 W8 WIL : Weekly I Learned 지난 일주일을 돌아봄으로써 나의 현재 상태를 파악하고 더 나은 다음 주를 만들기 위해 어떤 부분을 어떻게 채워나갈지 고민하는 것 내가 한 일(Facts) - SQL 코드카타 19~120, 파이썬 코드카타 29~30 문제풀이 - 심화 프로젝트 주제 선정 및 데이터 전처리 작업 느낀점(Feelings) - 심화 프로젝트가 본격적으로 시작됐다. 이번엔 주어진 주제 중에서 한 가지를 선택하는 방식으로 진행됐다. 우리 팀은 전처리 작업이 가장 까다로워 보이는 GA 로그 데이터를 선택했다. - 시작부터 쉽지 않았다. 특정 칼럼의 값이 키-값이 쌍을 이룬 딕셔너리 형태로 들어가 있어서, 이를 분리하는 작업이 필요했다. EDA나 기초 통계량 파악은 둘째 치고 데이터 자체를 돌려..
[240208] 날짜 데이터 타입 변환 및 처리(to_datetime, datetime) 1. 문제 배경 - POSIX 시간대(ex. 1472830385)로 처리된 날짜 칼럼을 년/월/일/시/분/초(ex.2016-08-01 07:00:12) 형식으로 변경 - 년/월/일별 분석을 위해 원하는 날짜나 시간대 등을 추출하는 작업 필요 2. 날짜형 데이터 타입 변경 - POSIX 시간은 UTC(협정 세계시) 기준 1970년 1월 1일 00:00:00 이후 경과한 초를 정수로 나타낸 시간대 └ UNIX 시간(UNIX time), Epoch 시간이라고 부르기도 함 - pd.to_datetime으로 데이터 타입 변경 └ format으로 칼럼 값의 형식을 지정한 뒤 날짜 형태로 출력 └ unit은 숫자에 대한 인수의 단위로 기본 값은 ns(나노 초). 초('s')로 지정하여 정수형 시간대를 날짜 형태로 출..
[240207] 문자열, 숫자 데이터 타입 변환(astype, to_numeric) * 자료 출처: Kaggle - Google Analytics Customer Revenue Prediction 1. 문제 배경 - 데이터 전처리 과정에서 문자열(str)과 정수(int) 타입으로 데이터 타입 변경 필요 2.데이터 타입 변경 1) astype()을 활용한 문자열 변환 - astype()은 열 기준으로 데이터 타입을 변경하는 함수로, 여러 칼럼을 원하는 타입으로 한 번에 변경 가능 # 모든 열의 데이터 타입 변경 DataFrame.astype(dtype, copy=True, errors='raise') ## dtype: 변경할 type ## copy: 사본 생성 여부 ## errors: {'raies', 'ignore'} 변경 불가 시 오류 발생 여부 # 한 개 열의 데이터 타입 변경 Da..
[240206] 중첩 딕셔너리? JSON 포맷 데이터프레임으로 평면화 * 자료 출처: Kaggle - Google Analytics Customer Revenue Prediction 1. 문제 배경 - 심화 프로젝트 분석 데이터셋의 각 칼럼값이 여러 딕셔너리 값이 나열된 듯한 모양을 함 ['device'] 칼럼 값 예시 {"browser": "Safari", "browserVersion": "not available in demo dataset", "browserSize": "not available in demo dataset", "operatingSystem": "iOS", "operatingSystemVersion": "not available in demo dataset", "isMobile": true, "mobileDeviceBranding": "not avai..
머신러닝: 개인 과제 풀이 및 해설 정리 시나리오 - 여러분은 S모 금융회사에 입사하였습니다. 올해 프로젝트로 회사의 주 수입원인 이자 매출 증대를 위해서 대출 권유 텔레마케팅을 진행할 예정입니다. 하지만 회사 고객이 1000만명이 넘는 대기업이기 때문에 모든 고객에게 텔레마케팅을 진행하는 것은 비용(돈, 시간)적인 방면에서 효율적이지 못합니다. - 데이터 분석그룹 소속인 여러분은 마케팅을 효율적으로 수행하기 위한 방안으로 “대출 할 것 같은” 고객을 사전에 선별하라는 지시를 받았습니다. 입사 후 첫 프로젝트이기 때문에 직접 회사 내 데이터로 예측모델링을 수행하기 전에 앞서 포르투칼 은행 데이터 기반으로 파일럿 프로젝트를 수행하여 고객 정보를 바탕으로 대출 실행 예측을 하려 합니다. 데이터 설명 및 출처 - 해당 데이터는 포르투칼 은행이 진행한..
[240205] SQL: 코드카타 119~121 & 파이썬: 코드카타 29~30 [파이썬 코드가타] 제일 작은 수 제거하기 https://school.programmers.co.kr/learn/courses/30/lessons/12935 1) 어떤 문제가 있었나 리스트 내 숫자 중 최솟값을 뺀 리스트를, 숫자가 1개라면 -1을 넣어서 반환하는 문제 2) 내가 시도해본 건 무엇인가 for문과 if문으로 최솟값이 아니면 빈리스트에 값을 넣고, 리스트가 비었다면 -1 반환 > 일부 테스트 시간 초과로 오답 처리 def solution(arr): answer = [] for i in arr: if i != min(arr): answer.append(i) if len(answer) == 0: answer.append(-1) return answer 3) 어떻게 해결했나 다른 사람 풀이를 참조..
[240129주차] 본캠프 W7 WIL : Weekly I Learned 지난 일주일을 돌아봄으로써 나의 현재 상태를 파악하고 더 나은 다음 주를 만들기 위해 어떤 부분을 어떻게 채워나갈지 고민하는 것 내가 한 일(Facts) - SQL 코드카타 116~118, 파이썬 코드카타 25~28 문제풀이 - 머신러닝의 이해와 라이브러리 활용 기초 및 심화 강의 수강 - TIL 작성 느낀점(Feelings) - 금주는 머신러닝에 대해 배웠다. 쉬운 개념부터 차근차근 알려주셔서 이해가 잘 되었고, 이론 > 실습 순으로 진행되니 개념이 더 잘 잡혔다. 강의 내용을 꼼꼼히 숙지하고, 실습을 최대한 하나하나 쳐보면서 따라하다보니 전체 강의를 수강하는데 시간이 꽤 오래 걸렸다. 강의는 짜임새나 설명력 면에서나, 여러모로 만족스러웠다. 차주 프로젝트 전에..