pandas 基于另一列的插补列是否为NaN

58wvjzkj  于 2023-01-11  发布在  其他
关注(0)|答案(1)|浏览(101)

这里我有一个简单的df,基本上对于["A"]中的空值,如果同一行中的["B"]没有空值,那么使["A"]等于["B"],如果它们都是空值,那么它应该跳过。
代码:

test = {'A': [3, np.nan, np.nan, 0], 'B': [4, 5, np.nan, 10]}

test_df = pd.DataFrame.from_dict(test)

test_df

##EXPECTED OUTPUT:

output = test = {'A': [3, 5, np.nan, 0], 'B': [4, 5, np.nan, 10]}

output_df= pd.DataFrame.from_dict(test)

output_df

我试过使用lambda函数& condition来解决这个问题,但是看起来太混乱和低效了,我想知道是否有一个简单干净的方法来解决这个问题。

s4n0splo

s4n0splo1#

fillna将一个系列与另一个系列连接,其作用与您所描述的完全相同:

In [304]: test_df["A"] = test_df["A"].fillna(test_df["B"])

In [305]: test_df
Out[305]:
     A     B
0  3.0   4.0
1  5.0   5.0
2  NaN   NaN
3  0.0  10.0

相关问题