I have a dataframe like this:
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
Now i want to change the values in is_score_chased column by comparing the values in runs1 and runs2 . If runs1>runs2, then the corresponding value in the row should be 'yes' else it should be no. I tried the following code:
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'
But it didn't work. How do i change the values in the column?
You can more easily use
np.where
.Typically, if you find yourself trying to iterate explicitly as you were to set a column, there is an abstraction like
apply
orwhere
which will be both faster and more concise.This is a good case for using apply.
Here there is an example of using apply on two columns.
You can adapt it to your question with this:
However, I would suggest filling your column with booleans so you can make it more simple
And also using lambdas so you make it in one line
You need to reference the fact that you are iterating through the dataframe, so;