我有一个数据帧,我想根据现有的列创建一个新列,其中的值非空。熊猫根据另一列的非空值创建一个新列
现有列以小数为单位,有些行为空。我想在整数中创建一个新的列。
我正在使用lambda但不断收到语法错误。谁能告诉我什么是错的?由于
df['new'] = df['old'].apply(lambda x: int(x) if x>=0)
我也试过:
df['new'] = df['old'].apply(lambda x: int(x) if x.isnull == False)
这一个:
df['new'] = df['old'].apply(lambda x: x.astype(int) if x>=0)
语法错误指向最后一个右括号。
有什么办法可以在lambda中使用elif?例如,如果我根据三种不同的条件应用三种不同的值?谢谢。 – RJL
你不能在lambda表达式中声明,所以不,至少不是这种形式。但是,您可以*连锁三元运算符:'val_1 if else if ....' –
Solaxun