I have a DataFrame with a column that has some bad data with various negative values. I would like to replace values < 0 with the mean of the group that they are in. For missing values as NAs, I would do: data = df.groupby(['GroupID']).column data.transform(lambda x: x.fillna(x.mean())) But how to do this operation on a condition like x < 0? Thanks! Continue reading...