【发布时间】:2018-07-23 23:14:14
【问题描述】:
我有一个数据框,其中包含从第 1 天到第 7 天的三个人(John、Terry、Henry)的分数。
1 2 3 4 5 6 7
John 1.3 2.8 3.0 4.4 2.6 3.1 4.8
Terry 1.1 2.3 4.1 5.5 3.7 2.1 3.8
Henry 0.3 1.0 2.0 3.0 2.7 1.1 2.8
如何设置分数上限,以便一旦分数达到 > 2.5,从那天起的所有分数都设置为 3,无论分数是多少
输出应该是:
1 2 3 4 5 6 7
John 1.3 3.0 3.0 3.0 3.0 3.0 3.0
Terry 1.1 2.3 3.0 3.0 3.0 3.0 3.0
Henry 0.3 1.0 2.0 3.0 3.0 3.0 3.0
我尝试先应用定义一个函数并使用 np.apply(threshold_1, axis=1) 但它不起作用:
def threshold_1(x):
if (x > 2.5 & x+1 < 2.5):
return 3
if (x > 2.5 & x+1 > 2.5):
return 3
else:
return x
【问题讨论】:
标签: pandas numpy dataframe lambda apply