pandas的apply函数作用于多列

import pandas as pd
import numpy as np

table = pd.DataFrame({'cnt1':[1,2,np.nan,4,np.nan,6],
                      'cnt2':[5,10,np.nan,np.nan,6,10]})

#写成一句
table['sub'] = table.apply(lambda row: row['cnt1'] if (pd.isnull(row['cnt1']) | pd.isnull(row['cnt2'])) else (row['cnt1']-row['cnt2']),axis = 1 )

#写成函数
def my_test(x,y):
    if pd.isnull(x) | pd.isnull(y):
        return x
    else:
        return x-y
table['sub'] = table.apply(lambda row: my_test(row['cnt1'],row['cnt2']),axis = 1 )

猜你喜欢

转载自blog.csdn.net/yuxeaotao/article/details/89492717
今日推荐