如何比较同一数据框的两列?
问题内容:
我有一个这样的数据框:
match_id inn1 bat bowl runs1 inn2 runs2 is_score_chased
1 1 KKR RCB 222 2 82 1
2 1 CSK KXIP 240 2 207 1
8 1 CSK MI 208 2 202 1
9 1 DC RR 214 2 217 1
33 1 KKR DC 204 2 181 1
现在,我想通过比较 runs1* 和 runs2中 的值来更改 is_score_chased 列中的值。如果runs1>
runs2,则该行中的对应值应为 “ yes”, 否则应为 no 。我尝试了以下代码:
***
for i in (high_scores1):
if(high_scores1['runs1']>=high_scores1['runs2']):
high_scores1['is_score_chased']='yes'
else:
high_scores1['is_score_chased']='no'
但这没有用。如何更改列中的值?
问题答案:
您可以更轻松地使用np.where
。
high_scores1['is_score_chased'] = np.where(high_scores1['runs1']>=high_scores1['runs2'],
'yes', 'no')
通常,如果您发现自己试图像设置列那样进行显式迭代,则会有一个类似apply
或的抽象where
,它将更快,更简洁。