Pandas: join with outer product,demand.ix['Com'].apply(lambda x: x * areas['Com']).stack()