Computer 2
Computer 2
………………………… …………………………
………………………… …………………………
SR NO. Contents
1. Acknowledgement
2. Programs
1. Python Programs
2. SQL Queries
3. Bibliography
Acknowledgement
I would like to express my sincere gratitude and appreciation to everyone who contributed
to the successful completion of this Python and SQL project for my class 12. This project
would not have been possible without the support and assistance of various individuals and
resources.
First and foremost, I would like to thank my teacher, Mr. Anurag Sharma, for their
guidance, encouragement, and valuable insights throughout the project. Their expertise
and mentorship played a pivotal role in shaping the project's direction and ensuring its
quality.
I am also thankful to my classmates and friends who provided assistance, feedback, and
moral support during the project's development. Their collaboration and camaraderie made
the project more enjoyable and productive.
I would like to acknowledge the authors of the Python programming language and the
creators of SQL for developing powerful tools that enabled me to implement the project's
functionalities effectively.
Lastly, I extend my gratitude to my family for their unwavering support and understanding
during the project's duration.
This project has been a valuable learning experience, and I am grateful for the
opportunity to apply my knowledge and skills to a real-world problem. Thank you to
everyone who played a part in this endeavor.
Garv Singh
Introduction
In an age characterized by the proliferation of data and the increasing reliance on
technology, the ability to harness and manipulate information has become a fundamental
skill. It is within this context that we proudly present our Python and SQL project, an
endeavor born out of curiosity, creativity, and a desire to explore the synergy between
programming and data management.
This project represents a culmination of our journey in the world of computer science,
particularly focusing on Python, a versatile and widely-used programming language, and
SQL, the language of choice for managing and querying relational databases. Through the
pages of this project report, we invite you to embark on a voyage into the realms of data
manipulation, analysis, and visualization.
Our project is a testament to the power of Python and SQL in addressing real-world
challenges. We have designed and implemented a system that not only showcases technical
prowess but also demonstrates the practical application of these tools. Through this
endeavor, we aim to shed light on the potential of data-driven decision-making and
problem-solving.
As you delve into this report, you will witness the meticulous planning, coding, and testing
that have gone into our project. We have endeavored to create a project that not only
fulfills the academic requirements of our class 12 curriculum but also has the potential to
benefit various fields and industries.
We would like to extend our gratitude to our teachers, mentors, and classmates whose
guidance and support have been invaluable throughout this project. Their encouragement
and constructive feedback have pushed us to strive for excellence.
We invite you to explore our Python and SQL project, and we hope that it serves as an
inspiration for future endeavors in the fascinating world of programming and data
management. Together, we embark on this journey of discovery, innovation, and learning.
Python Programs
1. Create a pandas series from a dictionary of values and an ndarray.
import pandas as pd
import numpy as np
s=pd.Series(np.array([1,3,4,7,8,8,9]))
print(s)
# create a dictionary
dictionary = {'X' : 10, 'Y' : 20, 'Z' : 30} # create a series
series = pd.Series(dictionary)
print(series)
import pandas as pd
s = pd.Series(['S101', 'Amjad', 'C.Sc.', 'XII – A1', '450'])
print("Original Data Series:")
print(s)
print("\nData Series after adding some data:")
new_s = s.append(pd.Series(['90.0', 'PASS']))
print(new_s)
4. Write a Pandas program to select the rows where the percentage greater than 70.
# Write a Pandas program to select the rows where the percentage greater than 70.
import pandas as pd
import numpy as np
df = pd.DataFrame(exam_data , index=labels)
print("Number of student whoes percentage more than 70:")
print(df[df['perc'] > 70])
5. Write a Pandas program to select the rows the percentage is between 70 and 90
(inclusive)
# Write a Pandas program to select the rows the percentage is between 70 and 90
(inclusive)
import pandas as pd
import numpy as np
df = pd.DataFrame(exam_data , index=labels)
print("Number of student whoes percentage more than 70:")
print(df[df['perc'].between(70,90)])
6. Write a Pandas program to change the percentage in a given row by the user.
df = pd.DataFrame(exam_dic , index=labels)
print("\nOriginal data frame:")
print(df)
ch = input("Enter the index of row : ")
per = float(input("Enter percentage to be changed: "))
print('\nChange the percentage in row '+ch+ ' to',per)
df.loc[ch, 'perc'] = per
print(df)
7. Write a Pandas program to join the two given dataframes along rows and assign all
data.
# Write a Pandas program to join the two given dataframes along rows and assign all data.
import pandas as pd
import numpy as np
exam_data1 = pd.DataFrame(exam_dic1)
exam_data2 = pd.DataFrame(exam_dic2)
print("Original DataFrames:")
print(exam_data1)
print("-------------------------------------")
print(exam_data2)
print("\nJoin the said two dataframes along rows:")
result_data = pd.concat([exam_data1, exam_data2])
print(result_data)
8. Write a Pandas program to join the two given dataframes along columns and assign
all data.
# Write a Pandas program to join the two given dataframes along columns and assign all
data.
import pandas as pd
import numpy as np
exam_data1 = pd.DataFrame(exam_dic1)
exam_data2 = pd.DataFrame(exam_dic2)
print("Original DataFrames:")
print(exam_data1)
print("-------------------------------------")
print(exam_data2)
print("\nJoin the said two dataframes along rows:")
result_data = pd.concat([exam_data1, exam_data2],axis=1)
print(result_data)
exam_data1 = pd.DataFrame(exam_dic1)
print("Original DataFrames:")
print(exam_data1)
print("\nDictionary:")
print(s)
# Add Series
combined_data = exam_data1.append(s, ignore_index=True, sort=False)
# Add Dictionary
combined_info = combined_data.append(dicts, ignore_index=True, sort=False)
print("\nCombined Data:")
# Print Combined Data/info
print(combined_info)
10. Program to select or filter rows from a DataFrame based on values in columns in
pandas.( Use of Relational and Logical Operators)
exam_data1 = pd.DataFrame(exam_dic1)
print("Original DataFrames:")
print(exam_data1)
print("\nUse == operator\n")
print(exam_data1.loc[exam_data1['name'] == 'Rohan'])
11. Filter out rows based on different criteria such as duplicate rows
import pandas as pd
data={'Name':['Aman','Rohit','Deepika','Aman','Deepika','Sohit','Geeta'],
'Sales':[8500,4500,9200,8500,9200,9600,8400]}
sales=pd.DataFrame(data)
# Find duplicate rows
duplicated = sales[sales.duplicated(keep=False)]
print("duplicate Row:\n",duplicated)
12. Importing and exporting data between pandas and CSV file.
# To create and open a data frame using ‘Student_result.csv’ file using Pandas.
# To display row labels, column labels data types of each column and the dimensions
# To display the shape (number of rows and columns) of the CSV file.
import pandas as pd
import csv
13. Read the ‘Student_result.csv’ to create a data frame and do the following
operation:
# To display Adm_No, Gender and Percentage from ‘student_result.csv’ file.
# To display the first 5 and last 5 records from ‘student_result.csv’ file.
import pandas as pd
import csv
#To display Adm_No, Gender and Percentage from ‘student_result.csv’ file.
df = pd.read_csv("student_result.csv",usecols = ['ADM_NO','GENDER', 'PERCENTAGE'])
14. Read the ‘Student_result.csv’ to create a data frame and do the following
operation:
# To display Student_result file with new column names.
# To modify the Percentage of student below 40 with NaN value in dataframe.
import pandas as pd
import numpy as np
import csv
df = pd.read_csv("student_result.csv")
print(df)
names = ['Adno','Sex','Name','Eng','Hin',
'Maths','Sc.','SSt','San','IT','Perc'])
import pandas as pd
import numpy as np
import csv
# find the highest percentage and also print the student’s name and percentage.
df1 = pd.read_csv("student_result.csv")
df1 = df1[["STUDENT'S_NAME",'PERCENTAGE']]
[df1.PERCENTAGE== df1['PERCENTAGE'].max()]
print(df1)
16. Importing and exporting data between pandas and MySQL database
import pymysql
import pandas as pd
import mysql.connector
from sqlalchemy import types, create_engine
# Create dataframe
dic={
'EMPNO':[7369,7499,7566,7654,7698,7782,7788,7839,7844,7900,7902,7934],
'ENMAE':['JAMES','ADAMS','CLARK','KING','WARD','JONES','ADAMS','SCOTT','FO
RD',
'BLAKE','MARTIN','TURNER'],
'JOB':['CLERK','CLERK','ANALYST','MANAGER','MANAGER','PRESIDENT','ANALYST'
,
'CLERK','MANAGER','ANALYST','SALESMAN','CLERK'],
'MGR':[7876,7876,7782,7900,7900 ,7900,7782,7876,7900,7782,7900,7876],
'HIREDATE':['2005/02/18','2005/01/04','2001/05/18','2003/04/19','2001/07/02',
'2006/09/21','2007/03/13','2005/03/06', '2007/01/12','2009/07/19','2009/01/05',
'2004/11/30'],
'SAL':[11400,19200,29400,60000,15000,95700,13200,36000,36000,34200,15000,18000]
,
'COMM':[4000,5000,5000,4000,2500,4000,2500,3000 ,3000,2500,2000 ,6000],
'DEPTT':[20,30,20,30,30,10,20,10,30,30,20,10]
}
data = pd.DataFrame(dic)
print('Our DataFrame is:\n',data)
tableName="employeedata"
try:
# Exporting dataframe to SQl
frame = data.to_sql(tableName, dbConnection, if_exists='fail');
print(vx)
print(ex)
else:
finally:
dbConnection.close()
# – Read a MySQL Database Table and write into a Pandas DataFrame:
sqlEngine = create_engine('mysql+pymysql://root:@127.0.0.1')
dbConnection= sqlEngine.connect()
dbConnection.close()
17. Find the sum of each column, or find the column with the lowest mean
# Find the sum of each column, or find the column with the lowest mean
import pandas as pd
Pass_Perc ={'Phy': {'2017':95.4,'2018':96.4,'2019':99.2,'2020':97.4},
'Che': {'2017':96.5,'2018':97.4,'2019':100,'2020':99.2},
'Maths': {'2017':90.2,'2018':92.6,'2019':97.4,'2020':98.0},
'Eng': {'2017':99.2,'2018':100,'2019':100,'2020':100},
'IP': {'2017':95.6,'2018':100,'2019':100,'2020':100}}
df=pd.DataFrame(Pass_Perc)
print(df)
print()
print('Column wise sum in datframe is :')
print(df.sum(axis=0))
# Print mean vaLue of each coLumn
print()
print('Column wise mean value are:')
print(df.mean(axis=0).round(1))
# Returns CoLumn with minimum mean vaLue
print()
print('Column with minimum mean value is:')
print(df.mean(axis=0).idxmin())
19. Subtract the mean of a row from each element of the row in a Data Frame
# Subtract the mean of a row from each element of the row in a Data Frame
import pandas as pd
Pass_Perc ={'Phy': {'2017':95.4,'2018':96.4,'2019':99.2,'2020':97.4},
'Che': {'2017':96.5,'2018':97.4,'2019':100,'2020':99.2},
'Maths': {'2017':90.2,'2018':92.6,'2019':97.4,'2020':98.0},
'Eng': {'2017':99.2,'2018':100,'2019':100,'2020':100},
'IP': {'2017':95.6,'2018':100,'2019':100,'2020':100}}
df=pd.DataFrame(Pass_Perc)
print(df)
print()
import pandas as pd
data = {'sales1':[10,20,-4,5,-1,15],
'sales2':[20,15,10,-1,12,-2]}
df = pd.DataFrame(data)
print("Data Frame")
print(df)
df[df<0]=0
print(df)
9990009998, np.nan,9999010000]}
# Convert the dictionary into DataFrame
df=pd.DataFrame(Srec)
print("\n- Dataframe Before Replacing NaN with 999-\n")
print(df)
22. Given a Series, print all the elements that are above the 75th percentile.
# Given a Series, print all the elements that are above the 75th percentile.
import pandas as pd
import numpy as np
s=pd.Series(np.array([2,4,5,10,18,20,25]))
print(s)
res=s.quantile(q=0.75)
print()
print('75th Percentile of the series is::')
print(res)
print()
print('The elements that above the 75th percentile:')
print(s[s>res])
23. Create a Data Frame quarterly sales where each row contains the item category,
item name, and expenditure. Group the rows by the category and print the total
expenditure per category.
# Create a Data Frame quarterly sales where each row contains the item category,
#item name, and expenditure. Group the rows by the category and print the total
#expenditure per category.
import pandas as pd
Col=['itemcat','itemname','expenditure']
# Create the pandas DataFrame
qrtsales = pd.DataFrame(data,columns=Col)
# print dataframe.
print (qrtsales)
qs=qrtsales.groupby('itemcat')
print('Result after Filtering Dataframe')
print(qs['itemcat','expenditure'].sum())
24. Create a data frame based on e-commerce data and generate descriptive
statistics (mean, median, mode, quartile, and variance)
# Create a data frame based on ecommerce data and generate descriptive statistics
# (mean, median,mode, quartile, and variance)
import pandas as pd
sales = {'InvoiceNo': [1001,1002,1903,1004,1085,1006,1007],
'ProductName': ['LCD','AC','Deodrant','leans','Books','Shoes','Jacket'],
'Quantity': [2,1,2,1,2,1,1],
'Price':[65000,55000,500,3000,958,3000,2200]}
df=pd.DataFrame(sales)
print(df)
print("Mean price of Item:", df['Price']. mean ().round (2))
print("Median price of Item:", df['Price']. median ().round (2))
print("Mode of price:\n", df[['Price']]. mode ())
print("Quartile of price:\n",df[['Price']].quantile([.1,.25,.5,.75],axis=0))
print("Variance of Price:\n",df[['Price']].var())
25. Given the school result data, analyses the performance of the students on
different parameters, e.g subject wise or class wise.
# Given the school result data, analyses the performance of the students on
#different parameters, e.g subject wise or class wise.
# x-axis is shows the subject and y -axis
# shows the markers in each subject
# import pandas and matplotlib
import pandas as pd
import matplotlib.pyplot as plt
plt.plot(subject,marks,'r',marker ='*')
# To Write Title of the Line Chart
plt.title('Marks Scored')
# To Put Label At Y Axis
plt.xlabel('SUBJECT')
# To Put Label At X Axis
plt.ylabel('MARKS')
plt.show()
SQL Queries
1. How do you retrieve all records from a table named "customers"?
2. Can you find the total number of orders in the "orders" table?
3. Retrieve the names and email addresses of customers who have made a
4. How can you update the price of a product with ID 1001 to $19.99?
8. How can you add a new category named "Electronics" to the "categories"
table?
10. Retrieve the products that are out of stock (quantity is 0).
11. How do you delete a customer with ID 3001 from the "customers" table?
12. Retrieve the employee names and their managers' names from the
"employees" table.
FROM employees e
13. List the customers who have spent more than $100 in total.
FROM customers c
GROUP BY c.customer_name
FROM orders
GROUP BY customer_id;
15. How do you find the products with names containing the word "camera"?
Books:
2. Celko, Joe. (2016). "Joe Celko's SQL for Smarties: Advanced SQL Programming."
Morgan Kaufmann.
Websites: