Briefly: Euclidean distances between every possible pair of clusters
across two dataframes are calculated, and pairs of clusters are chosen in
order to minimize the total sum of color distances between the cluster pairs
(i.e. A1-B1, A2-B2, etc).
For example, if dataframe A has a black cluster, a white cluster, and a blue
cluster, in that order, and dataframe B has a white cluster, a blue cluster,
and a grey cluster, in that order, the final pairs might be A1-B3 (black and
grey), A2-B2 (blue and blue), and A3-B1 (white and white).
Rows are reordered so that paired rows are in the same row index (in the
example, dataframe B would be reshuffled to go grey, blue, white instead of
white, grey, blue).