# Extract currency symbol and price into separate columns df['currency'] = df['price'].str.extract(r'([^0-9]+)') df['price_value'] = df['price'].str.extract(r'(d+.?d*)').astype(float) df['stock_type'] = df['number_available_in_stock'].str.extract(r'([^0-9]+)') df['stock_availability'] = df['number_available_in_stock'].str.extract(r'(d+.?d*)') # Clean up average review rating df['average_review_rating'] = df['average_review_rating'].str.replace(' out of 5 stars', '').astype(float) # Clean up number of reviews df['number_of_reviews'] = df['number_of_reviews'].str.replace(',', '').fillna(0).astype(int)