У меня есть фрейм данных, подобный следующему:
df = pd.DataFrame({"id": [100, 200, 200, 300, 300, 300], "val1": [1.5, 2.5, 4.5, np.nan, 6.5, np.nan], "val2": [9.5, 7.5, 8.5, 3.5, np.nan, np.nan]})
Чего я хочу добиться, так это обнулить каждую группу (при условии, что фрейм данных сгруппирован по id
) до максимального количества строк для всех групп. Максимальное количество строк в id
для указанного выше фрейма данных равно 3, поэтому результирующий фрейм данных должен выглядеть следующим образом:
df_true = pd.DataFrame({"id": [100, 100, 100, 200, 200 ,200, 300, 300, 300], "val1": [1.5, 0, 0, 2.5, 4.5, 0, np.nan, 6.5, np.nan], "val2": [9.5, 0, 0, 7.5, 8.5, 0, 3.5, np.nan, np.nan]})
Может ли кто-нибудь указать мне правильное направление, как этого достичь?