I have a dataframe df_ia:
dod1 dod2
0 0 0
1 200806 0
2 200806 0
3 200806 0
4 200806 0
5 200806 0
6 200806 0
7 200806 0
and a function used to apply to every row:
def life_status(dod1, dod2):
if dod1.any() == 0:
ls1 = '1'
else:
ls1 = '0'
if dod2.any() == 0:
ls2 = '1'
else:
ls2 = '0'
lifestatus = ls1 + ls2
return lifestatus
df_ia['lifestatus'] = life_status(df_ia['dod1'].values,df_ia['dod2'].values)
But I found that,I can't direct use :
if dod1.any() to add condition
so I tried something like,
if np.any(dod1==0):
ls1='1'
But it still not work.
The output should looks like:
dod1 dod2 lifestatus
0 0 0 11
1 200806 0 01
2 200806 0 01
3 200806 0 01
4 200806 0 01
5 200806 0 01
6 200806 0 01
7 200806 0 01
8 200806 0 01
9 200806 0 01
I can use this code to achieve this,
def life_status(row):
if row['dod1'] == 0:
ls1 = '1'
else:
ls1 = '0'
if row['dod2'] == 0:
ls2 = '1'
else:
ls2 = '0'
lifestatus = ls1 + ls2
return lifestatus
df['lifestatus'] = df.apply(lambda row: life_status(row), axis=1)
but it is very slow that is why I post this question.