有条件地在python中更新数据帧?

时间:2015-09-21 14:50:23

标签: python pandas

我想根据两个不同的阈值创建1/0True/False的数据框。我目前有一个这样的数据框:

          col1    col2    col3    col4...
    time
       0  0.42    0.01    0.02    0.33
       1  0.51    0.02    0.01    0.45
       2  0.35    0.00    0.48    0.67

我想创建一个基于&#39; on&#39;的新数据框。阈值value > 0.4和&#39;关闭&#39;阈值value < 0.3

          col1    col2    col3    col4...
    time
       0     1       0       0       0
       1     1       0       0       1
       2     1       0       1       1

因此即使(time=2,col1)小于0.4,它仍然取值1,因为它之前的值是1,并且该值大于0.3。

1 个答案:

答案 0 :(得分:0)

threshold_func_last = 0
def reset_threshold_func():
    global threshold_func_last
    threshold_func_last = 0

def threshold_func(value):
    global threshold_func_last
    if value > 0.4:
        threshold_func_last = 1
    elif value < 0.3:
        threshold_func_last = 0
    return threshold_func_last

df_out = pd.DataFrame()
for column in df.columns:
    reset_threshold_func()
    df_out[column] = df[column].apply(threshold_func)