import numpy as np# Calculate demand_multiplier based on percentile for high and low demandhigh_demand_percentile = 75low_demand_percentile = 25data['demand_multiplier'] = np.where(data['Number_of_Riders'] > np.percentile(data['Number_of_Riders'], high_demand_percentile), data['Number_of_Riders'] / np.percentile(data['Number_of_Riders'], high_demand_percentile), data['Number_of_Riders'] / np.percentile(data['Number_of_Riders'], low_demand_percentile))# Calculate supply_multiplier based on percentile for high and low supplyhigh_supply_percentile = 75low_supply_percentile = 25data['supply_multiplier'] = np.where(data['Number_of_Drivers'] > np.percentile(data['Number_of_Drivers'], low_supply_percentile), np.percentile(data['Number_of_Drivers'], high_supply_percentile) / data['Number_of_Drivers'], np.percentile(data['Number_of_Drivers'], low_supply_percentile) / data['Number_of_Drivers'])# Define price adjustment factors for high and low demand/supplydemand_threshold_high = 1.2 # Higher demand thresholddemand_threshold_low = 0.8 # Lower demand thresholdsupply_threshold_high = 0.8 # Higher supply thresholdsupply_threshold_low = 1.2 # Lower supply threshold# Calculate adjusted_ride_cost for dynamic pricingdata['adjusted_ride_cost'] = data['Historical_Cost_of_Ride'] * ( np.maximum(data['demand_multiplier'], demand_threshold_low) * np.maximum(data['supply_multiplier'], supply_threshold_high))