Filtering method that minimizes ringing in time domain, implementable in Python I am acquiring data through an oscilloscope, which I am then filtering. I am doing all of this in Python.

I need a bandpass filter with stop bands from 0 to .4MHz, and 4MHz and up. My pass band needs to be in the remaining region and would ideally be as large as possible.

I checked out a text from the library to help design a filter. The first filter I built was a Butterworth filter. However, the time domain response was awful for any decent frequency range, as I need an order 5+ filter.

I am now using the Remez (in scipy.signal) algorithm to generate my Transfer function coefficients. It looks All right, but I'm wondering if there is a better filtering option for flat time domain a fast frequency response?
It would appear by your question that you are new to filter design, which makes it difficult to answer questions about your filtering needs, so you might want to try this link.  http://www.iowahills.com/

This site has free FIR and IIR filter design programs that make it point and click simple to design and compare filters. The programs make it easy to see the how the various filter parameters such as pole count, tap count, response type (Butterworth, Chebyshev, Adjustable Gauss, etc.), linear phase, minimum phase, etc., affect a filter's response in both the time and frequency domain.

These programs can't replace Python, (they only design filters and filter data on the program's test bench), but they will make it quite easy to choose a filter design to use within Python.