2017-11-28 23 views
0

パンダのケーススイッチまたは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

を試してみてください? – user32185

答えて

0

あなたは `np.where`を使用しようとしないのはなぜこの

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 
関連する問題