데이터 부트캠프 - Today I Learned

[스파르타 내일배움캠프 / 데이터 분석 트랙] TIL(Today I Learned)_5주차_24.12.27

onion95 2024. 12. 29. 23:13

Today's Goals

1. 기초 프로젝트 - RFM 분석을 통한 고객 세그먼트와 그룹별 특징 파악을 해보자

 

 

 

으ㅏ아아아아....! 불태웠다

 

 

 

1. 기초프로젝트 진행 과정

 

 

[상황 설정]

  • 데이터 분석 상황 및 목표 설정 > 프로모션 기간 종료 후 성과 확인, 프로모션 개선 계획 수립 

 

[전처리]

  • 컬럼에 대한 정의를 명확하게 합의하고자 노력함
  • json형태의 저장 데이터를 처리함 > 새로운 컬럼 생성

 

[RFM 분석을 통한 고객 세그먼트]

  • 분석 대상 기간동안 구매 이력이 없는 고객은 제외함
  • 총 구매 금액, 단위기간 동안 구매 횟수, 최근 구매 시점을 기준으로 세그먼트
  • 사분위수를 기준으로 4그룹으로 구분, 각 그룹별 점수를 부여하여 최종 고객 그룹 4개로 분류

 

[고객 세그먼트 기반 특징 파악]

  • 팀원별로 작업 나눔 > 고객 그룹별, 프로모션별 참여율 및 수익율 파악

 

 

 

 

2. Python 함수 더 알아가기



[json 형태로 저장된 값을 가진 컬럼의 전처리, json.loads]

  • 위와 같이, 리스트 형태의 값과 딕셔너리 형태의 값을 가지는 두 데이터프레임을 활용하려면 전처리가 필요함
  • json 모듈 사용 필요, import json
transcript_copy['parsed_data'] = transcript_copy['value'].apply(json.loads)
  • 위와 같은 코드를 썼는데, ' 이 홑따옴표를 " 이 쌍따옴표로 바꾸라는 오류가 떴음
transcript_copy['value_dict'] = transcript_copy['value'].apply(lambda x: json.loads(x.replace("'", '"')))
  • 위 코드로 변경 후 오류 해결, 새로운 컬럼을 생성하여 json 형태 데이터 재구성

https://wikidocs.net/126088

 

077 JSON 데이터를 다루려면? ― json

json은 JSON 데이터를 쉽게 처리하고자 사용하는 모듈이다. ## 문제 다음은 개인정보를 JSON 형태의 데이터로 만든 myinfo.json 파일이다. `[파일명: m…

wikidocs.net

 

 

[집합을 만들어 주는 set() 함수, list와의 차이는?]

  • set()함수는 중복을 없앤 집합을 만들어줌
  • 따로 list 형태는 아니고, list로 활용하려면 변형해주는 과정 필요
  • 순서가 없어 index 접근은 불가능, for문을 이용하여 요소를 하나씩 불러낼 수 있음
  • update 메서드를 이용하여 요소 추가

https://ctkim.tistory.com/entry/Python-%EC%9E%85%EB%AC%B8-%EA%B0%95%EC%A2%8C-12-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%A7%91%ED%95%A9Set-%EC%A0%95%EB%A6%AC-%EB%B0%8F-%EC%82%AC%EC%9A%A9%EB%B2%95#google_vignette

 

[Python 입문 강좌 - 12] 파이썬 집합(Set) 정리 및 사용법

더보기 ##파이썬 입문 목차 1. 파이썬 이란? 2-1. 파이썬 윈도우 설치 2-2. 파이썬 맥북 설치 2-3. 윈도우 파이썬 IDE 파이참 설치하기 2-4. 맥북 파이썬 IDE 파이참 설치하기 3. 파이썬 변수(Variable)의 정

ctkim.tistory.com

 

 

[컬럼별 합이 아닌, 인덱스별 합을 구하고 싶다면]

  • sum(aixs=1) 을 해주면 됨
  • axis = 0은 행방향 동작(위에서 아래), =1은 열방향 동작(왼쪽에서 오른쪽)

 

 

[특정 조건에 해당하는 행의 개수 세기]

  • shape 또는 len을 활용할 수 있음
#방법1
x.loc[x['event'] == 'offer completed'].shape[0]

#방법2
len(x.loc[x['event'] == 'offer completed'])

https://jimmy-ai.tistory.com/267

 

[Pandas] 파이썬 데이터프레임 특정 값, 조건 만족 행 개수 세기

파이썬 판다스 특정 값/조건 개수 조회 방법 정리 파이썬의 데이터프레임에서 판다스 모듈을 통해 특정 값의 개수나 조건을 만족하는 행의 개수를 세는 방법을 간략하게 정리해보도록 하겠습니

jimmy-ai.tistory.com

 

 

[결측값 대체, 그런데 이제 앞의 행과 뒤의 행을 참조하는...]

  • fillna(method=)를 통해 결측값을 대체할 행을 정할 수 있음(윗 행이나 아래 행)
  • ffill은 윗행의 값으로 결측값을 채우는 것, bfill은 아래행의 값으로 결측값을 채우는 것

https://wikidocs.net/153209

 

06-04. 결측값 변경 (fillna / backfill / bfill / pad / ffill)

####DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None) …

wikidocs.net