Problem
Table: Products
+-------------+---------+
| Column Name | Type |
+-------------+---------+
| product_id | int |
| low_fats | enum |
| recyclable | enum |
+-------------+---------+
product_id is the primary key (column with unique values) for this table. low_fats is an ENUM (category) of type (‘Y’, ‘N’) where ‘Y’ means this product is low fat and ‘N’ means it is not. recyclable is an ENUM (category) of types (‘Y’, ‘N’) where ‘Y’ means this product is recyclable and ‘N’ means it is not.
Write a solution to find the ids of products that are both low fat and recyclable.
Return the result table in any order.
The result format is in the following example.
Examples
Example 1:
Input:
Products table:
+-------------+----------+------------+
| product_id | low_fats | recyclable |
+-------------+----------+------------+
| 0 | Y | N |
| 1 | Y | Y |
| 2 | N | Y |
| 3 | Y | Y |
| 4 | N | N |
+-------------+----------+------------+
Output:
+-------------+
| product_id |
+-------------+
| 1 |
| 3 |
+-------------+
Explanation: Only products 1 and 3 are both low fat and recyclable.
Solution
Method 1 - Using where and and
Code
Sql
select product_id from products where low_fats = 'y' and recyclable='y'
Pandas
import pandas as pd
def find_products(products: pd.DataFrame) -> pd.DataFrame:
recyclable_low_fat_df = products[(products['low_fats'] == 'Y') & (products['recyclable'] == 'Y')]
return recyclable_low_fat_df[['product_id']]