Я думаю, что это лучше всего показать на примере. То, что я пытаюсь сделать, - найти ненулевой номер из группы и распространить его на остальную часть группы.Pandas groupby: заполните пропущенные значения от других членов группы
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 (так что оба соответствуют их непустым соседям группы).
Таким образом, конечный результат будет таким:
i_num i_id
1 1 2
2 1 2
3 1 2
4 5 3
5 5 3
Что делать, если есть более чем один уникальный 'i_num' для данного' i_id '? Как вы выбираете, какое значение затем заполнить? – Alexander