목록이것저것 (2)
tak's data blog

데이터가 아래와 같을 때 (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..