pandas numpy where mask 关系总结
         
                原创
        
    
    
                
             ©著作权归作者所有:来自51CTO博客作者基督徒Isaac的原创作品,请联系作者获取转载授权,否则将追究法律责任        
            
                    
                
df_1 = df_.iloc[:, columns_select_index]
df_2 = df_1.copy()
# 方法1
df_2['铝价1'] = np.where(
    df_1['非锁铝价-币种'].isna(),
    df_1['非锁铝价'],
    df_1['非锁铝价-币种']
)
# 方法2
df_2['铝价2'] = df_1['非锁铝价-币种'].mask(
    df_1['非锁铝价-币种'].isna(),
    df_1['非锁铝价']
)
df_2
# import numpy as np
seri = pd.Series([1,2,3,4])
np.where(
    seri % 2 == 0
    # x 默认为no
    # y 默认为原值
) # either both or neither of x and y should be given
# np.ma.where效果和机理貌似一致

ser_1 = pd.Series(range(5))
ser_2 = pd.Series([True, False])
ser_1.to_frame(name='ser_1').query(
    "ser_1 in @ser_2"
)