-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path1084. Sales Analysis III.py
64 lines (49 loc) · 1.5 KB
/
1084. Sales Analysis III.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import pandas as pd
# Example DataFrames (assuming you already loaded these)
# product_df = pd.read_csv('Product.csv')
# sales_df = pd.read_csv('Sales.csv')
# Convert 'sale_date' to datetime
sales_df['sale_date'] = pd.to_datetime(sales_df['sale_date'])
# Define date ranges
start_date = pd.Timestamp('2019-01-01')
end_date = pd.Timestamp('2019-03-31')
# Find products sold within Q1 2019
q1_sales = sales_df[
(sales_df['sale_date'] >= start_date) &
(sales_df['sale_date'] <= end_date)
]
# Find products sold outside Q1 2019
non_q1_sales = sales_df[
(sales_df['sale_date'] < start_date) |
(sales_df['sale_date'] > end_date)
]
# Identify product_ids sold exclusively in Q1 2019
exclusive_q1_products = set(q1_sales['product_id']) - set(non_q1_sales['product_id'])
# Filter the product DataFrame
result_df = product_df[product_df['product_id'].isin(exclusive_q1_products)][['product_id', 'product_name']]
# Display the result
print(result_df)
# or
import mysql.connector
import pandas as pd
# Connect to MySQL
conn = mysql.connector.connect(
host='your_host',
user='your_user',
password='your_password',
database='your_db'
)
query = """
Select distinct p.product_name, s.product_id
From Sales as s
Join Product as p on s.product_id = p.product_id
Where s.sale_date between '2019-01-01' and '2019-03-31'
and s.product_id not in (
Select product_id
From Sales
Where sale_date < '2019-01-01' or sale_date > '2019-03-31'
)
"""
result_df = pd.read_sql(query, conn)
print(result_df)
conn.close()