I'm attempting to clean up a set of old files that contain sensor data measurements. Many of the files don't have headers, and the format (column ordering, etc.) is inconsistent. I'm thinking the best that I can do in these cases is to match statistical profiles of the columns to data from files that do have good headers. This seems like it should be simple using something like Pandas Profiling, but I haven't found any examples. I'm looking for something that would calculate a score for the similarity between each column in the header-less file and each "known" column for which I already have headers.
Example Data with Headers:
| Large Value Column | Small Value Column |
|---|---|
| 100 | 5 |
| 102 | 12 |
| 110 | 8 |
| 98 | 10 |
Example Data with only column numbers:
| 0 | 1 |
|---|---|
| 6 | 99 |
| 9 | 105 |
| 11 | 101 |
| 14 | 100 |
For the above example, I would like to automatically determine that column 1 should be added to "Large Value Column" and Column 0 to "Small Value Column".

That's an interesting question.
The solution that will work heavily depends on the data you're working with. But here's my thoughts, assuming that your data is similar to the little exampled above, just longer.
The first step would be to create a descriptor that takes as input a row and returns a low-dimension vector that describes this row. For instance: the mean, the standard deviation, the median, ... This should be designed according to what actually describes your data. Then, for each column of your dataset, you're going to have a descriptor vector and (eventually) a label (ie. the column's header), that may or not be known.
The next step can either be classification or clustering, depending on how much data you have and the quality of your descriptors. Look up Scikit documentation about how to do so. Their API is very easy to use and comes with many examples. If you know the number of real headers, you could try to use K-means and I think it would work really well. Maybe KNN can also work. You probably want to look for a sorting algorithm quite 'simple' at first (it's easier to tune), and if nothing simple works then you could try more fancy approaches.
I hope this helps you.