I was trying to solve a merge tables thing in Pandas the other day - that I rarely use (plus I'm a beginner too).
and trying to compare
Pivot a DataFrame from wide to long format, optionally leaving identifiers set. This function is useful to massage a DataFrame into a format where one or more columns are identifier variables (id_vars), while all other columns, considered measured variables (value_vars), are “unpivoted” to the row axis, leaving just two non-identifier columns, ‘variable’ and ‘value’.
vs
Merge DataFrame or named Series objects with a database-style join. A named Series object is treated as a DataFrame with a single named column. The join is done on columns or indexes. If joining columns on columns, the DataFrame indexes will be ignored. Otherwise if joining indexes on indexes or indexes on a column or columns, the index will be passed on. When performing a cross merge, no column specifications to merge on are allowed.
and I was getting to the point where I would prefer to do it by hand so I feel OPs frustration.
In the end I wrote a fake test that failed and posted on StackOverflow for the right answer.