从一组列中检索第一个非NA值

时间:2020-06-02 20:05:53

标签: python pandas merge

我是一个非常新的编码员,所以如果你们能帮助我的话,那就太好了。

假设我有一个数据框: enter image description here

我可以以“数字”优先的方式组合“数字”和“数字2”,除非没有值(NaN)。当“数字”为NaN时,我们将使用“数字2”中的条目

它应该像这样enter image description here

换句话说,我想组合“数字”和“数字2”,如果“数字”为NaN,则使用“数字2”的输入。如果“数字”有一个条目,请将其保留为合并的条目。这类似于合并两个数据帧的左合并。

顺便说一句,我正在使用python和pandas。

更新:尝试使用np.where

enter image description here

不带np的输出。其中:enter image description here

np输出,其中:enter image description here

3 个答案:

答案 0 :(得分:2)

或者您可以使用AND n.n > 0

0

然后只需INSERT @num(n) SELECT TOP (255) row_number() OVER (ORDER BY (SELECT NULL)) Number2列

答案 1 :(得分:1)

bfill(axis=1)iloc

df = pd.DataFrame({
    'Name': df['Name'],
    'Number': df.filter(like='Number').bfill(axis=1).iloc[:,0]
})

答案 2 :(得分:0)

您不需要merge。您可以为此使用numpy.where

import numpy as np

df['Number'] = np.where(df['Number'].isna(), df['Number 2'], df['Number'])
相关问题