我有一个列表
function iTri(s) {
var triLength = 140.60;
var result = {};
var str = ' to go!';
var lengthLeft = (triLength - s).toFixed(2);
switch(true) {
case s === 0:
return 'Starting Line... Good Luck!';
case s <= 2.4:
result.Swim = lengthLeft + str;
break;
case s <= 114.4:
result.Bike = lengthLeft + str;
break;
case s < 130.60:
result.Run = lengthLeft + str;
break;
case s < 140.60:
result.Run = 'Nearly there!';
break;
default:
return 'You\'re done! Stop running!';
}
return result;
}
console.log(iTri(0));
console.log(iTri(2));
console.log(iTri(50));
console.log(iTri(120));
console.log(iTri(135));
console.log(iTri(145));
对这些值进行加权,以便l = ['xyz','abc','mnq','qpr']
我有一个pandas数据框,其中包含一组包含值的列。
xyz>abc>mnq>qpr
现在,我想在集合中选择最高值,以便在我应用自定义函数后,我留下了
COL_NAME
0 set(['xyz', 'abc'])
1 set(['xyz'])
2 set(['mnq','qpr'])
有没有一种优雅的方法来完成这个过程而不需要使用权重字典?
答案 0 :(得分:3)
您可以将pd.Categorical
与参数ordered=True
一起使用,并设置categories=l[::-1]
以获取您想要的订单。
def max_cat(x):
return set([pd.Categorical(x, l[::-1], True).max()])
df.COL_NAME.apply(max_cat)
0 {xyz}
1 {xyz}
2 {mnq}
Name: COL_NAME, dtype: object