You are given a pandas DataFrame df with missing values in multiple numeric columns. Write a concise pandas expression to replace NaNs in each numeric column with that column's mean while leaving non-numeric columns unchanged. Also explain how you would: (a) perform the operation in-place, (b) compute and apply per-group means based on a key column (e.g., 'group'), and (c) skip columns whose values are all NaN.