假设我有以下 Dataframe :
data = {"age":[2,3,2,5,9,12,20,43,55,60],'alpha' : [0,0,0,0,0,0,0,0,0,0]}
df = pd.DataFrame(data)
我想使用df.loc
和一个算术序列,基于age
列更改alpha
列的值,但出现语法错误:
df.loc[((df.age <=4)) , "alpha"] = ".4"
df.loc[((df.age >= 5)) & ((df.age <= 20)), "alpha"] = 0.4 + (1 - 0.4)*((df$age - 4)/(20 - 4))
df.loc[((df.age > 20)) , "alpha"] = "1"
谢谢你在davance
3条答案
按热度按时间tv6aics11#
使用
.
而不是$
引用age
列nmpmafwu2#
您可以使用链式
np.where
子句一次组合所有条件,而不是多次.loc
赋值:b4qexyjb3#
除了
synthax error
(* 由于$*),为了减少可见噪声,我会选择numpy.select
:输出: