如何根据Python中的其他列填充列值

时间:2019-12-03 05:05:39

标签: python pandas dataframe

我有一个看起来像这样的数据集:

ID      Date          A           B             
1       1-Nov         10          5            
1       2-Nov                     7
2       1-Nov         11          8 
2       2-Nov                     10

在A列中有一些空白值,因此在输出A的任何地方,输出都将被这些值填充,如果不存在A,则其将被B填充,所以输出将类似于:

ID      Date          A           B           Output  
1       1-Nov         10          5             10
1       2-Nov                     7             7
2       1-Nov         11          8             11
2       2-Nov                     10            10

有人可以帮我吗?

3 个答案:

答案 0 :(得分:2)

使用numpy.where

import numpy as np

df["Output"] = np.where(df["A"].isnull(), df["B"], df["A"])

答案 1 :(得分:1)

您可以使用比较来完成此操作:

df["Output"] = df.apply(lambda x: x['A'] if x['A']>0 else x['B'], axis=1)

答案 2 :(得分:1)

您实际上可以使用fillna()。更具体地说,我将使用:

df[New_Var] = df[A].fillna(df[B])

在这种情况下,如果A列具有值,则新列将使用A列中的值。如果A列缺少值,则将使用B列的值。哦,如果您的数据框有空白并且没有丢失,那么将需要执行另一步骤以将各个列中的空白替换为丢失。