将值添加到数据框中其他 2 列的空白列

Add values to a blank column from 2 other columns in a dataframe

我想从我的数据框中的 A 列和 B 列创建 C 列。我使用了 append() 但由于某种原因,我的列 C 没有从 A 和 B 中的一个或另一个中选择值。有人可以帮忙吗?

      A        B        C
0     Cat     "Blank"   Cat     
1     Mouse    Mouse    Mouse
2     Fish    "Blank"   Fish
3     "Blank" "Blank"   "Blank"
4     "Blank"  Dog      Dog
def function(column_A, column_B):
    if column_A != 'Blank':
        return(column_A)
    elif column_B != 'Blank':
        return(column_B)
    else :
        return('Blank')

df["C"] = df.apply(lambda r : function(r.A,r.B),axis=1)

仅当 A 为 NaN:

时,才使用 bfill 将值从 B 复制到 A
df['C'] = df[['A', 'B']].bfill(axis=1)['A']
>>> df
       A      B      C
0    Cat    NaN    Cat
1  Mouse  Mouse  Mouse
2   Fish    NaN   Fish
3    NaN    NaN    NaN
4    NaN    Dog    Dog

你可以使用combine first

df['C'] = df.A.combine_first(df.B)
输出:
      A      B      C
0    Cat    NaN    Cat
1  Mouse  Mouse  Mouse
2   Fish    NaN   Fish
3    NaN    NaN    NaN
4    NaN    Dog    Dog