将值添加到数据框中其他 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
我想从我的数据框中的 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