首页 > 解决方案 > 优先折叠数据框列

问题描述

我有一个大型 DataFrame,其中包含来自各种来源的大量出色参数以进行比较。例如,对于恒星温度,我在单独的列中有 1 到 6 个恒星的结果(例如这里的表格:https ://i.stack.imgur.com/LIGdZ.png )。我想将这些列折叠为一个“温度”列,该列最好采用 GAIA_Teff,然后如果不可用,则使用 V&F_Teff 等等。是否有一个简单的数据框方法可以做到这一点,或者我应该只使用一堆 if 语句或类似的语句?

谢谢

标签: pythonpandasdataframe

解决方案


我这样做了:

star_frame['Teff']=np.where(star_frame['GAIA_teff_val'].notnull(),star_frame['GAIA_teff_val'],
                        np.where(star_frame['V&F_Teff'].notnull(),star_frame['V&F_Teff'],
                                 np.where(star_frame['Pastel_Teff'].notnull(),star_frame['Pastel_Teff'],
                                          np.where(star_frame['Sim_Teff'].notnull(),star_frame['Sim_Teff'],
                                                   np.where(star_frame['Teff_from_HIP_BV'].notnull(),star_frame['Teff_from_HIP_BV'],
                                                            star_frame['Teff_from_Sim_BV'])))))

推荐阅读