
import pandas as pd
sales=pd.read_csv("sales.csv") # reading from csv file
print(sales)
Output
sale_id c_id p_id product qty store
0 1 2 3 Monitor 2 ABC
1 2 2 4 CPU 1 DEF
2 3 1 3 Monitor 3 ABC
3 4 4 2 RAM 2 DEF
4 5 2 3 Monitor 3 ABC
5 6 3 3 Monitor 2 DEF
6 7 2 2 RAM 3 ABC
7 8 3 2 RAM 2 DEF
8 9 2 3 Monitor 2 ABC
print(sales.groupby(['product','p_id'])[['qty']].sum())
Output
qty
product p_id
CPU 4 1
Monitor 3 12
RAM 2 7
import pandas as pd
sales=pd.read_csv("sales.csv")
#print(sales)
# using groupby get the list of products and its sum sold
my_sale=sales.groupby(['product','p_id', 'store'])[['qty']].sum()
#print(my_sale)
product=pd.read_csv("products.csv")
#print(product)
my_sum=pd.merge(my_sale,product,how='left',on='p_id')
#print(my_sum)
#We added one more column total_sales by multiplying total sales with price.
my_sum['total_sale']=my_sum['qty']*my_sum['price']
print(my_sum)
Output
p_id qty product price total_sale
0 4 1 CPU 55 55
1 3 10 Monitor 75 750
2 3 2 Monitor 75 150
3 2 3 RAM 90 270
4 2 4 RAM 90 360
In above code the output of groupby() is to be indexed by using reset_index()
my_sale=sales.groupby(['product','p_id', 'store'])[['qty']].sum().reset_index()
product_x p_id store qty product_y price total_sale
0 CPU 4 DEF 1 CPU 55 55
1 Monitor 3 ABC 10 Monitor 75 750
2 Monitor 3 DEF 2 Monitor 75 150
3 RAM 2 ABC 3 RAM 90 270
4 RAM 2 DEF 4 RAM 90 360
import pandas as pd
sales=pd.read_csv("sales.csv")
print(sales.groupby(['product','p_id','store'])[['qty']].sum())
Output
qty
product p_id store
CPU 4 DEF 1
Monitor 3 ABC 10
DEF 2
RAM 2 ABC 3
DEF 4
import pandas as pd
sales=pd.read_csv("sales.csv")
#print(sales)
product=pd.read_csv("products.csv")
my_sum=pd.merge(sales,product,how='left',on=['p_id'])
my_sum['sales_total']=my_sum['qty']*my_sum['price']
print(my_sum.groupby(['store'])[['qty','sales_total']].sum())
Output
qty sales_total
store
ABC 13 1020
DEF 7 565
import pandas as pd
products=pd.read_csv("products.csv")
sales=pd.read_csv("sales.csv")
my_data=pd.merge(sales,products,on='p_id',how='right')
#print(my_data['sale_id'].isna())
my_data=my_data[my_data['sale_id'].isnull()] # products which are not sold
print(my_data)
#print(my_data.loc[:,'product_y']) # to display only produts column
Output
sale_id c_id p_id product_x qty store product_y price
9 NaN NaN 1 NaN NaN NaN Hard Disk 80
10 NaN NaN 5 NaN NaN NaN Keyboard 20
11 NaN NaN 6 NaN NaN NaN Mouse 10
12 NaN NaN 7 NaN NaN NaN Motherboard 50
13 NaN NaN 8 NaN NaN NaN Power supply 20
import pandas as pd
sales=pd.read_csv("sales.csv")
customer=pd.read_csv("customer.csv")
my_data=pd.merge(sales,customer,on='c_id',how='right')
my_data=my_data[my_data['sale_id'].isnull()] # products which are not sold
#print(my_data)
print(my_data.loc[:,'Customer']) # to display customers who has not purchased
Output
9 King
10 Ronn
11 Jem
12 Tom
Name: Customer, dtype: object
Pandas
Pandas DataFrame
Author
🎥 Join me live on YouTubePassionate about coding and teaching, I publish practical tutorials on PHP, Python, JavaScript, SQL, and web development. My goal is to make learning simple, engaging, and project‑oriented with real examples and source code.