본문 바로가기

분류 전체보기152

[Python] Pandas : Dataframe 함수 - groupby() 사용법 이 글에서는 python의 대표적인 데이터 관련 함수인 groupby의 원리, 사용법에 대해서 알아보겠습니다. 대표적으로 사용하는 인자와 집계 함수의 종류와 예시도 살펴보겠습니다.  groupby 함수는 데이터프레임을 그룹으로 분할하고 각 그룹에 대해 연산을 적용할 수 있습니다. SQL의 GROUP BY와 똑같은 기능을 합니다. 이 함수는 데이터를 그룹화하고 그룹화된 데이터를 다양한 방법으로 분석하고 처리하는 데 사용됩니다. groupby 함수의 작동 방식은 아래와 같이 분할 -> 적용 -> 결합 단계를 거치게 됩니다.분할(Splitting):groupby 함수는 데이터프레임을 기준 열(또는 열의 리스트)에 따라 그룹으로 분할합니다.이 기준 열의 값에 따라 데이터가 여러 그룹으로 나뉩니다.적용(Apply.. 2024. 7. 27.
리텐션을 늘리기 위한 Network effect 종류 네트워크 효과? 왜 중요할까?네트워크 효과란 ‘서비스를 사용하는 유저수의 증가가 서비스 가치의 증가를 불러 일으키는 경우’를 말한다. 카카오톡을 예로 들면, 카카오톡에 내 친구가 10명이 있을 때랑 100명이 있을 때의 카카오톡이 나한테 가지는 가치를 한 번 생각해보면 된다. 메세지나 사진을 보내는 등 본질적인 가치는 전혀 바뀐 것이 없는데, 나한테 가지는 의미는 10배가 되는 것이다.  네트워크 효과가 있는 서비스는 MAU가 증가할 수록, 서비스를 사용하지 않을 이유가 줄어들기 때문에 리텐션이 늘어난다. 리텐션이 늘어나면 다시 MAU가 늘어나기 때문에 사용자가 늘어날 수록 수학적으로는 Carrying Capacity가 무한 성장하게 된다. 네트워크 효과는 브랜드, 스케일(규모), 임베드와 같이 디지털 .. 2024. 7. 22.
[solvesql]쇼핑몰의 일일 매출액과 ARPPU solvesql 사이트의 쇼핑몰의 일일 매출액과 ARPPU 문제 정답과 풀이이다. 난이도는 3단계였고, 한번에 정답을 맞췄다. 풀이하면서 쿼리 수행시간을 최대한 낮추려고 신경쓰면서 풀었다. 난이도 : 3풀이시간 : 15분수행시간 : 0.998초https://solvesql.com/problems/daily-arppu/  정답 쿼리select date(order_purchase_timestamp) as dt, count(*) as pu, round(sum(revenue),2) as revenue_daily, round(sum(revenue)/count(*),2) as arppufrom olist_orders_dataset aleft join (select order_id, sum(.. 2024. 7. 11.
[solvesql] 할부는 몇개월로 해드릴까요 해설 solvesql 할부는 몇개월로해드릴까요 sql 문제 정답 및 해설입니다. 문제 : https://solvesql.com/problems/installment-month/ 정답select payment_installments, count(distinct order_id) as order_count, min(payment_value) as min_value, max(payment_value) as max_value, avg(payment_value) as avg_valuefrom olist_order_payments_datasetwhere payment_type = 'credit_card'group by payment_installments;  해설정답률이 매우 낮길래 어렵나 하고 문제를 풀.. 2024. 7. 7.
퀀트 투자의 7대 죄악 실무에서 일하는 사람들도 백테스트를 할 때, 흔히 저지르는 실수들 1. 생존 편향2. 미래참조 편향3. 스토리텔링의 죄악4. 데이터 마이닝과 데이터 스누핑의 편향5. 신호의 감소와 회전율6. 이상치7. 비대칭적 패턴과 공매도 비용 1. 생존 편향생존 편향은 투자자들이 흔히 저지르는 실수편의를 위해(혹은 데이터를 구하지 못해) 현재 상장된 회사만을 사용하여 투자 전략을 백테스트파산, 상장폐지 또는 인수로 인해 투자 유니버스에서 사라진 주식은 백테스트에 포함하지 않음생존 편향은 종종 지나치게 좋은 결과를 보여주거나 때로는 실제와 완전히 반대되는 결과를 보여줌그림 3: 1986년 12월 31일에 Russell 3000 지수에 있었고 오늘날까지 살아남은 회사. 지난 28년 동안 지수의 3,000개 주식 중 50.. 2024. 6. 24.
Google Analytics용 Python API(GA4) 사용법(1) 이 문서에서는 GA4와 파이썬을 연결시켜서 파이썬에서 GA4 데이터를 불러오는 방법을 알아보겠다. 한가지 아쉬운 점은 빅쿼리처럼 모든 데이터를 불러올 수는 없다는 점이다. 어떤 데이터를 불러올 수 있는지는 이 문서를 참고하자. 작업 순서1. 구글 문서 접속https://developers.google.com/analytics/devguides/reporting/data/v1/quickstart-client-libraries?hl=ko 2. Google Analytics Data API v1 사용 설정 클릭 3. 이름 설정 후, Next 클릭 4. Download private key as JSON 클릭 5. client_email 복사DOWNLOAD PRIVATE KEY AS JSON을 클릭하면, JSO.. 2024. 6. 9.
[Python] Pandas : Dataframe 함수 - reset_index() reset_index() 함수는 Pandas 라이브러리에서 사용되는 함수로, 데이터프레임의 인덱스를 초기화하거나 재설정하는 데 사용됩니다. 이 함수는 인덱스를 리셋하고, 기존 인덱스를 데이터프레임의 열로 변환할 수 있는 다양한 옵션을 제공합니다. reset_index() 함수의 주요 기능과 사용법을 설명하겠습니다. 기본 사용법기본적으로 reset_index() 함수는 데이터프레임의 인덱스를 기본 숫자 인덱스로 재설정합니다.import pandas as pd# 예제 데이터프레임 생성data = { 'A': [1, 2, 3], 'B': [4, 5, 6]}df = pd.DataFrame(data, index=['a', 'b', 'c'])print("Original DataFrame:")print(d.. 2024. 6. 9.
[Python] Pandas : Dataframe 함수 - replace() pandas 라이브러리에서 DataFrame의 특정 열의 값을 다른 값으로 대체하기 위해 replace() 메서드를 사용할 수 있습니다. df['A'].replace()는 DataFrame df의 'A' 열에 대한 대체 작업을 수행합니다. replace() 메서드의 문법은 다음과 같습니다: DataFrame.replace(to_replace=None, value=None, inplace=False, limit=None, regex=False, method='pad')  여기서 df['A']에 대해서 replace()를 사용할 때 주로 사용되는 인수는 to_replace, value, inplace입니다. 예제는 이들을 중심으로 설명하겠습니다. 주요 인수to_replace: 교체하려는 값입니다. 단일 값,.. 2024. 6. 9.
데이터 그로쓰 모델링 (바이럴 K, 네트워크 이펙트) 이 글은 토스의 이승건 대표이사님의 PO 세션 4번째 파트를 정리한 내용입니다. 1,2,3번째 파트를 보지 않으셨다면 보고 오시는 걸 추천드리며, 요약된 글로 간단한게 집고 넘어가고 싶은 이 글을 참고해주세요. 데이터 그로쓰 모델링  Skeptics : 서비스 이용에 회의적인 사람들. 그 유저들 중에서 다시 생각이 나거나 다시 여러가지 계기로 서비스를 사용할 수 있는 이유를 찾게 되면 부활하게 된다.(Resurrection)Resurrection : 완전히 Churn된 유저, 즉 Dead Pool에서 서비스를 다시 발견하고 쓰게 되는 유저들도 있다.DAU : 매일매일 봤을 때에는 이 서비스를 쓰기 위해 다시 돌아오는 유저가 500명. 이 때 DAU는 550명.Carrying Capacity : 5000명.. 2024. 4. 28.
A/B 테스트를 통계적으로 신뢰할 수 있게 하기 위한 사전 작업들 A/B 테스트를 진행할 때, A그룹과 B그룹의 조건이 동일하지 않다면 실험 결과를 신뢰할 수 있을까? 또한, 실험 대상의 양이 너무 작다면? 실험 결과의 차이가 미미하다면? 이 글에서는 A/B테스트 결과를 신뢰할 수 있는 방법에 대해서 알아볼 것이다.  왜 A/B테스트를 하는가? 현실 세계에서 한정된 자원으로 새로운 아이템의 효과를 검증하기 위한 가장 좋은 방법이기 때문이다. 사례) 오바마 대선 캠프가족의 모습이 담긴 이미지와 LEARN MORE 버튼은 기존 안 대비 각각 18.6%, 13.1%의 가입률 증가를 보였으며 두 아이템을 조합한 페이지의 경우 40.6% 가입률 증가 여기 A/B 테스트의 더 다양한 성공 사례가 있다.  UX/UI 디자이너가 새로운 앱 디자인을 만들었다고 가정해보자. 이 UI를 .. 2024. 4. 14.
Retention Curve로 PMF 찾은 후, CC 향상을 위해 해야하는 것들 이전에 토스 PO세션에서 나온 개념인 Carrying Capacity를 실무에서 계산하는 과정에 대해서 글을 작성한 적이 있다. 이번에는 내용을 보강하여 Retention Curve로 PMF를 찾았다는 걸 발견하고 나서 CC 증대를 위해 해야 하는 것들에 대해서 알아보겠다. * 해당 글은 토스 이승건 대표이사님이 유튜브 토스 PO Session에서 발표한 내용을 정리한 글입니다. PMF의 유일한 기준, Retention PlateauPMF를 찾았다 안찾았다를 가르는 사실상 거의 유일한 기준은 Retention이 Plateau가 생겼냐 안 생겼냐이다. 즉, 리텐션이 평평하게 유지되는 부분이 있다면 PMF를 찾은 것이다. 사실상 Retention Plateau는 20% 이상이 되어야 회사를 만드는 것이 가능.. 2024. 3. 31.
티스토리 도메인 변경시, 기존에 노출되던 글 리디렉션으로 살리는 법 티스토리에서 도메인(URL)을 변경하면, 기존에 유입되던 트래픽이 뚝 끊기게 된다. 기존 글들이 기존의 도메인으로 노출이 되고있기 때문이다. 따라서 새로 바뀐 도메인으로 리디렉션 시키는 작업을 해야 하는데, 그 방법을 알아보겠다. 나의 경우엔 기존에 가비아에서 구매한 도메인을 사용을 하다가 사용기간이 끝나서 끝난 김에 다시 티스토리 도메인을 쓰려고 했다. 가비아에서 쓰던 도메인은 coduking.com이었고, 바꾼 도메인은 coduking.tistory.com이다. 그런데, 도메인을 바꿨더니 역시나 기존에 들어오고 있던 트래픽이 뚝 끊겨버렸다. 구글 공식문서를 보니, 리디렉션을 먼저 설정해서 기존의 도메인과 새로운 도메인을 매핑시켜야 한다고 하는데, 티스토리는 서버에 접속을 할 수 없으니 답답한 상황이었.. 2024. 3. 30.