【发布时间】:2018-05-05 23:52:03
【问题描述】:
全部,
我能够在pandas documentation 和stackoverflow 中找到一个名为“combine_first()”的函数。这仅适用于几个逻辑示例。我能够使以下内容多次结合“combine_first()”函数(在本例中为 6)。有人可以帮助找到更优雅的解决方案吗?
创建的变量“category_id”的结果应该包含第一个非缺失值,从最后一个变量(category_id7)开始,升序到第一个。如果 category_id(x) 已填充,则 category_id 应采用该值并停止处理数据框中的每一行。
d={'category_id1':[32991,32991,32991,32991,32991],
'category_id2':[22,22,22,22,22],
'category_id3':[33058,51,121,120,32438],
'category_id4':[np.nan,np.nan,np.nan,np.nan,np.nan],
'category_id5':[np.nan,np.nan,np.nan,np.nan,np.nan],
'category_id6':[np.nan,np.nan,np.nan,np.nan,np.nan],
'category_id7':[np.nan,np.nan,np.nan,np.nan,np.nan]
}
df=pd.DataFrame(data=d)
df['category_id']=df.category_id7.combine_first(df.category_id6).combine_first(df.category_id5).combine_first(df.category_id4).combine_first(df.category_id3).combine_first(df.category_id2).combine_first(df.category_id1)
print(df)
【问题讨论】:
标签: python pandas missing-data coalesce