2017-11-28 1 views
0

팬/틸러 (Pandas)의 케이스 스위치 또는 if-elif 체인을 사용하여 datetime 열을 증가시키는 방법이 있습니까?조건에 따라 날짜가 증가됨 팬더

def due_date(row): 

    if 5 <= row['num_1'] <= 10: 
     result = pd.to_datetime(row['date']) + pd.to_datetime(df['date']).apply(pd.DateOffset(1)) 

    elif 10 <= row['num_1'] <= 15: 
     result = pd.to_datetime(row['date']) + pd.to_datetime(df['date']).apply(pd.DateOffset(5)) 

    elif 15 <= row['num_1'] <= 20: 
     result = pd.to_datetime(row['date']) + pd.to_datetime(df['date']).apply(pd.DateOffset(10)) 

    elif 20 <= row['num_1'] <= 25: 
     result = pd.to_datetime(row['date']) + pd.to_datetime(df['date']).apply(pd.DateOffset(15)) 

    return result 

이것은 작동하지 않습니다. :( 어떤 도움을 크게 감상 할 수있다.

+0

왜'np.where'를 사용하려고하지 않는 시도? – user32185

답변

0

는이

deltas = pd.to_timedeltas(
    pd.cut(
     df[‘num_1’], 
     [5, 10, 15, 20, 25], 
     labels=[1, 5, 10, 15] 
    ), 
    unit=‘D’ 
) 

pd.to_datetime(df[‘date’]) + deltas