在数据框中有以下列:
0
0
0
0
0
5
我想检查大于阈值的值。如果找到,则设置为零并向上移动差值阈值,在新位置设置阈值。让我们说阈值= 3,然后得到的列必须是:
0
0
0
3
0
0
快速转型的想法吗?
答案 0 :(得分:0)
对于此DataFrame:
df Out: A 0 0 1 0 2 0 3 0 4 0 5 5 6 0 7 0 8 0 9 0 10 6 11 0 12 0
threshold = 3
above_threshold = df['A'] > threshold
df.loc[df[above_threshold].index - (df.loc[above_threshold, 'A'] - 3).values, 'A'] = 3
df.loc[above_threshold, 'A'] = 0
df Out: A 0 0 1 0 2 0 3 3 4 0 5 0 6 0 7 3 8 0 9 0 10 0 11 0 12 0