这是使用两个具有简短语法的 groupby 方法的一种方法:
df.groupby(level=0).bfill().groupby(level=0).first()
输出:
a b c d e
A 2.0 4.0 3.0 NaN NaN
B NaN NaN 4.0 NaN 7.0
给定 df 为:
df = pd.DataFrame({'a':[2]+[np.nan]*4
,'b':[np.nan]+[4]+[np.nan]*3
,'c':[np.nan]*2+[3,4]+[np.nan]
,'d':[np.nan]*5
,'e':[np.nan]*4+[7]}, index=[*'AAABB'])