Fixed-Width vs Adaptive Binning
I took a look at that link.  It's pretty informative.  As you already know, The cut function is used to specifically define the bin edges.  There is no guarantee about the distribution of items in each bin.  In fact, you can define bins in such a way that no items are included in a bin or nearly all items are in a single bin.  The qcut function is slightly different.  The qcut function tries to divide up the underlying data into equal sized bins.  The function defines the bins using percentiles based on the distribution of the data, not the actual numeric edges of the bins.  In conclusion, if you want equal distribution of the items in your bins, use qcut . If you want to define your own numeric bin ranges, then use cut.

See the link below for more details.

https://pbpython.com/pandas-qcut-cut.html