pandas根据前者生成新列

时间:2017-04-28 02:11:37

标签: python pandas

有一个数据集,其中一列包含一些缺失值。我想生成一个新列,如果缺少前一列的单元格,则将新列分配为1,否则为0.

我试过

df[newcolumn] = map(lamba x: 1 if x is None else 0, df[formercolumn])
但它不起作用。

虽然

df[newcolunm] = df[formercolunms].isnull().apply(lambda x: 1 if x is True else 0)

运作良好。

对这种情况有更好的解决方案吗?

2 个答案:

答案 0 :(得分:1)

使用np.where

df['newcolumns'] = np.where(df.formercolumns.isnull(),0,1)

答案 1 :(得分:1)

我使用numpy进行以下操作,这与您的解决方案非常相似,但略短/更快

df[newcolunm] = df[formercolunms].apply(lambda x: 0 if np.isnan(x) else 1)
然而,我认为斯科特的答案更好/更快。