在检查数据帧时如何选择特定列

2024-04-26 18:38:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Python中有一个熊猫数据帧

       AccountID_x    AccountId  AmountCD_x  AmountDOC_x  AmountDoc_x  
1              NaN  4001001copa       52.53        52.53          NaN   
2              NaN  4001001copa       52.53        52.53          NaN   
3      4001001copa          NaN       52.53        52.53          NaN   
4              NaN  4001001copa       52.53        52.53          NaN   

此数据帧是将两个数据帧合并在一起的merge命令的结果。我现在要做的是创建一个新列,该列将添加AccountID\u x或AccountID,基于该列,on不是Nan,因此在上面的示例中,行1、2、4将包含AccountID的值,行3将包含某个新列中AccountID\u x的值。你知道吗


Tags: 数据命令示例onmergenanaccountidamountdoc
3条回答

您可以先使用combine\来组合这两者

df['new_col'] = df['AccountId'].combine_first(df['AccountID_x'])

df['new_col']

1    4001001copa
2    4001001copa
3    4001001copa
4    4001001copa

也可以使用apply传播fillna

df2['newcolumn'] = df2[['AccountID_x','AccountId']].apply(lambda x: x.fillna(method='ffill')[-1], axis=1)

或等效地(在您的情况下):

df2['newcolumn'] = df2[['AccountID_x','AccountId']].apply(lambda x: x.fillna(method='bfill')[0], axis=1)

试试这个:

df['new_column'] = df.apply(lambda x: x['AccountId'] if pd.isnull(x['AccountID_x']) else x['AccountID_x'], axis=1)

相关问题 更多 >