我正在创建一个新专栏。它将引用A列中的文本(测试3字符串条件),结果将是B列中的文本。我有这段代码,它可以工作,但不知道是否有更干净更好的方法来完成这项任务。Psuedo代码应该是:如果“linemove”列包含这些字符串中的任何一个,则将结果表单带到“Home”列
melted.loc[(melted['linemove'] == 'bigger dog') | (melted['linemove'] == 'flipped, now dog') | (melted['linemove'] == 'smaller favorite'), 'betOn'] = melted['Home']
melted.loc[(melted['linemove'] == 'smaller dog') | (melted['linemove'] == 'flipped, now favorite') | (melted['linemove'] == 'bigger favorite'), 'betOn'] = melted['Road']
另一种可能更短的方法是使用
np.select
和.isin
方法因为你只有两个条件,你也可以简单地做
np.select
方法的优点是不必定位两行(左侧和右侧)我认为很难缩短
or
,因为最终这就是您试图实现的逻辑您可以通过定义一个布尔输出数组,然后使用该数组设置值,使其更具可读性,例如
并给
my_condition
起一个有意义的名字(我真的很难理解你的情况的上下文,所以才给它起个好名字!)相关问题 更多 >
编程相关推荐