31. Patch Negatives with Group Mean

Hard

Build df with vals = np.random.RandomState(31).randint(-30, 30, size=15) and grps = np.random.RandomState(31).choice(['A','B'], 15). Return a Series replacing each negative value in 'vals' with the mean of the non-negative values in its group.

Implement solve(...)