Hello,
Sounds cool feature, indeed.
I'd love to have this available with indexing feature as well. For more clarity (yes, habits...), I'd prefer, instead of np.where, passing a "where" argument which is a boolean array of same length thant the original data frame:
filt = df['x'] == y
filt &= df['y'] < 10
df.pipe(function, where=filt, *args)
Also, in order to be able to deal with side effect, it would be great to add a inplace argument which is defaulting to True. If we use False, the pipe will work on a copy, allowing side effects, etc.
But ... that's only my opinion.
Best regards.