How to filter out noise from non-stationary signal
Break your signal into short overlapping frames over which it is stationary. Say, the length of the frame is $L$ samples. You can window it to smooth out discontinuities. For example, you can use a Hann window with an overlap of $L/2$ samples.
On each windowed frame, use the Wiener filter to find the optimal inverse filter coefficients to cancel your noise. See scipy.signal.wiener.
Overlap add your filtered signal frames to recover the original non-stationary signal.