我有一个这样的数据框:
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中的值来更改i score\u 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'
但没用。如何更改列中的值?
您需要引用您正在遍历数据帧的事实,因此
你可以更容易地使用^{} 。
通常,如果您发现自己试图像设置列那样显式地迭代,那么会有一个像
apply
或where
这样的抽象,它会更快、更简洁。这是使用apply的好例子。
Here有一个在两列上使用apply的示例。
你可以用这个来适应你的问题:
不过,我建议你在你的专栏里填上布尔语,这样你就可以使它更简单
同时使用lambdas,这样你就可以在一条线上
相关问题 更多 >
编程相关推荐