I’m trying to multiply (add/divide/etc.) two dataframes that have different column labels.
I’m sure this is possible, but what’s the best way to do it? I’ve tried using rename to change the columns on one df first, but (1) I’d rather not do that and (2) my real data has a multiindex on the columns (where only one layer of the multiindex is differently labeled), and rename seems tricky for that case…
So to try and generalize my question, how can I get df1 * df2 using map to define the columns to multiply together?
df1 = pd.DataFrame([1,2,3], index=['1', '2', '3'], columns=['a', 'b', 'c'])
df2 = pd.DataFrame([4,5,6], index=['1', '2', '3'], columns=['d', 'e', 'f'])
map = {'a': 'e', 'b': 'd', 'c': 'f'}
df1 * df2 = ?
Assuming the index is already aligned, you probably just want to align the columns in both DataFrame in the right order and divide the
.valuesof both DataFrames.Supposed
mapping = {'a' : 'e', 'b' : 'd', 'c' : 'f'}: