これは例で示すのが一番だと思います。私がやろうとしているのは、グループから null 以外の番号を見つけて、それをグループの残りの部分に伝達することです。
In [52]: df = pd.DataFrame.from_dict({1:{'i_id': 2, 'i_num':1}, 2: {'i_id': 2, 'i_num': np.nan}, 3: {'i_id': 2, 'i_num': np.nan}, 4: {'i_id': 3, 'i_num': np.nan}, 5: {'i_id': 3, 'i_num': 5}}, orient='index')
In [53]: df
Out[53]:
i_num i_id
1 1 2
2 NaN 2
3 NaN 2
4 NaN 3
5 5 3
DataFrame は次のようになります。私が望むのは、すべての i_id == 2 を取り、それらの i_num == 1 を作成し、すべての i_id == 3 を作成し、それらの i_num == 5 を作成することです (したがって、両方とも非 null グループの隣人に一致します)。
したがって、最終結果は次のようになります。
i_num i_id
1 1 2
2 1 2
3 1 2
4 5 3
5 5 3