목록이것저것 (3)
tak's data blog
신호 데이터는 공대 학생들만 공부하고 활용하는 것으로 알고 있었습니다. 하지만 유저들의 행동 데이터에 푸리에 변환으로 주기성을 가지는 함수들의 합으로 분해하여 특징을 지을 수 있다면 어뷰징을 쉽게 탐지할 수 있을 것이다. 라는 글을 보고 푸리에 변환에 관심을 가지게 되었습니다. 그래서 이를 공부해 직접 수집한 데이터로 변환을 해보는 과정을 가지도록 하겠습니다. 출처: https://www.youtube.com/watch?v=60cgbKX0fmE&list=PLEGnaIwMq6ozCqLEM_rEGxvZqqDi63omB&index=3 순서는 푸리에 변환에 대한 설명과 다음 게시물에는 관련 분석 결과를 제시하도록 하겠습니다. 푸리에 변환 푸리에 변환이란 임의의 입력 신호를 다양한 주파수를 갖는 주기함수들의 합으..
데이터가 아래와 같을 때 (cust: 고객) 고객별로 order_stack(주문누적횟수)를 1씩늘려가며 작성하려고 한다. 순간 groupby를 잊어버려서 비효율적인 코드를 작성하였다. 진짜 단순하게 생각해서 고객(cust)을 unique하게 따로 뽑아둔다음 고객에따라 데이터프레임을 재생성해 rank함수로 순위를 매기고 다시 데이터프레임을 합치려고 하였다... 참 1차원적인 생각이었는데 데이터가 상당수가 되다보니 이렇게하면 1시간 이상의 시간이 소요되기 때문에 apply를 사용해서 해결할 수는 없을까 고민했다. 상품재구매기간_final['order_stack'] = 0 cust = 상품재구매기간_final['cust'].unique() df = 상품재구매기간_final[['index', 'cust', 'o..
보통 고객이 이탈할 때, 재구매를 할 때 등 기간을 구하기 위해 고유한 인덱스를 기준으로 정렬해 위아래의 차이로 계산한다. 여태까지 아래와 같이 비효율적이게 for문으로 조건을 주어 해결했었다. 새로운 데이터프레임, 고유한 유저별 데이터프레임을 생성해 계산한 후 concat하는 방식으로 진행했었다... from tqdm import tqdm reorder_day = pd.DataFrame() de_lp['reorder_day'] = 0 u_list = de_lp[de_lp['reorder'] == 'O']['cust'].unique() for i in tqdm(u_list): reorder_df = de_lp[de_lp['cust'] == i] reorder_df[['reorder_day']] = reo..