A left outer join combines normalized data while preserving the rows driven by the left DataFrame. Matching rows from the right DataFrame are attached when available, making separate datasets analyzable together. section 6.8
Combine products with sales
Set product_id as the index in products_df and sales_df, then run products_df.join(sales_df). The product rows drive the result, while matching sales information is attached. Continue by grouping the joined result by name, date, or both, then summing quantity or retail_price. section 6.8
products_df.join(sales_df)
Inspect the concise pandas operation that joins products_df and sales_df after product_id becomes the index. section 6.8





