Solved LeetCode 1164 with SQL and Pandas

Solving LeetCode - 1164. Product Price at a Given Date IN SQl - WITH cte AS (SELECT * FROM Products WHERE change_date <= '2019-08-16'), cte1 AS (SELECT *, RANK() OVER (PARTITION BY product_id ORDER BY change_date DESC) AS rnk FROM cte) SELECT product_id, new_price AS price FROM cte1 WHERE rnk = 1 UNION SELECT product_id, 10 AS price   FROM Products WHERE product_id NOT IN (SELECT product_id FROM cte1); IN PANDAS- import pandas as pd def price_at_given_date(products: pd.DataFrame) -> pd.DataFrame:   filtered = products[products['change_date'] <= '2019-08-16']   filtered = filtered.sort_values(['product_id', 'change_date'], ascending=[True, False])   latest = filtered.drop_duplicates(subset=['product_id'], keep='first')   all_products = products['product_id'].unique()   latest_ids = latest['product_id'].unique()   missing_ids = set(all_products) - set(latest_ids)   missing_df = pd.DataFrame({'product_id': list(missing_ids), 'price': 10})   latest = latest[['product_id', 'new_price']].rename(columns={'new_price': 'price'})   result = pd.concat([latest, missing_df], ignore_index=True)   return result.sort_values('product_id').reset_index(drop=True) #LeetCode #Python #Pandas #SQL #DataEngineering #CodingPractice  #ProblemSolving #DataAnalysis #SQLtoPandas #googleanalytics

To view or add a comment, sign in

Explore content categories