0% found this document useful (0 votes)
8 views

Python Practical File 2024-25

Uploaded by

arjuntiw890
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views

Python Practical File 2024-25

Uploaded by

arjuntiw890
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 64

Table: GRADUATE & GUIDE

CREATE TABLE GRADUATE ( SNO INT(2),


NAME VARCHAR(13),
STIPEND INT(3),
SUBJECT VARCHAR(15),
AVERAGE INT(3),
DIVISION INT(1)
);

CREATE TABLE GUIDE ( SUBJECT VARCHAR(15),


ADVISOR VARCHAR(10)
);

DESC GRADUATE;
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| SNO | int | YES | | NULL | |
| NAME | varchar(13) | YES | | NULL | |
| STIPEND | int | YES | | NULL | |
| SUBJECT | varchar(15) | YES | | NULL | |
| AVERAGE | int | YES | | NULL | |
| DIVISION | int | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+

DESC GUIDE;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| SUBJECT | varchar(15) | YES | | NULL | |
| ADVISOR | varchar(10) | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+

INSERT INTO GRADUATE VALUES (1, 'KARAN', 400, 'PHYSICS', 68, 1);
INSERT INTO GRADUATE VALUES (2, 'DIVAKAR', 450, 'COMPUTER SC', 68, 1);
INSERT INTO GRADUATE VALUES (3, 'DIVYA', 300, 'CHEMISTRY', 62, 2);
INSERT INTO GRADUATE VALUES (4, 'ARUN', 350, 'PHYSICS', 63, 1);
INSERT INTO GRADUATE VALUES (5, 'SABINA', 500, 'MATHEMATICS', 70, 1);
INSERT INTO GRADUATE VALUES (6, 'JOHN', 400, 'CHEMISTRY', 55, 2);
INSERT INTO GRADUATE VALUES (7, 'ROBERT', 250, 'PHYSICS', 64, 1);

INSERT INTO GUIDE VALUES ("PHYSICS", "VINOD");


INSERT INTO GUIDE VALUES ("COMPUTER SC", "ALOK");
INSERT INTO GUIDE VALUES ("CHEMISTRY", "RAJAN");
INSERT INTO GUIDE VALUES ("MATHEMATICS", "MAHESH");

1|Page
SELECT * FROM GRADUATE;
+------+---------+---------+-------------+---------+---------+
| SNO | NAME | STIPEND | SUBJECT | AVERAGE | DIVISON |
+------+---------+---------+-------------+---------+---------+
| 1 | KARAN | 400 | PHYSICS | 68 | 1 |
| 2 | DIVAKAR | 450 | COMPUTER SC | 68 | 1 |
| 3 | DIVYA | 300 | CHEMISTRY | 62 | 2 |
| 4 | ARUN | 350 | PHYSICS | 63 | 1 |
| 5 | SABINA | 500 | MATHEMATICS | 70 | 1 |
| 6 | JOHN | 400 | CHEMISTRY | 55 | 2 |
| 7 | ROBERT | 250 | PHYSICS | 64 | 1 |
+------+---------+---------+-------------+---------+---------+

SELECT * FROM GRADUATE;


+-------------+---------+
| SUBJECT | ADVISOR |
+-------------+---------+
| PHYSICS | VINOD |
| COMPUTER SC | ALOK |
| CHEMISTRY | RAJAN |
| MATHEMATICS | MAHESH |
+-------------+---------+

Q. Write a query for following questions and give their output.

1. Who is the advisor of Karan?

SELECT NAME, ADVISOR


FROM GRADUATE GR, GUIDE GU
WHERE (GU.SUBJECT = GR.SUBJECT) AND (NAME = "KARAN");
+-------+---------+
| NAME | ADVISOR |
+-------+---------+
| KARAN | VINOD |
+-------+---------+

2. Count the no. of graduates according to their division.

SELECT DIVISION, COUNT(*) FROM GRADUATE


GROUP BY DIVISION;
+----------+----------+
| DIVISION | COUNT(*) |
+----------+----------+
| 1 | 5 |
| 2 | 2 |
+----------+----------+

3. Display the details of graduates who were teached by Vinod and their average
is more than 65.
SELECT NAME, ADVISOR
FROM GRADUATE GR, GUIDE GU
WHERE (GU.SUBJECT = GR.SUBJECT) AND (ADVISOR = "VINOD") AND (AVERAGE > 65);

2|Page
+-------+---------+
| NAME | ADVISOR |
+-------+---------+
| KARAN | VINOD |
+-------+---------+

4. Display the details of graduates whose division is 2nd and their name starts
with D and ends with A.

SELECT * FROM GRADUATE


WHERE (NAME LIKE "D%A") AND (DIVISION = 2);
+------+-------+---------+-----------+---------+----------+
| SNO | NAME | STIPEND | SUBJECT | AVERAGE | DIVISION |
+------+-------+---------+-----------+---------+----------+
| 3 | DIVYA | 300 | CHEMISTRY | 62 | 2 |
+------+-------+---------+-----------+---------+----------+

5. Display the names of graduates along with their advisor.


SELECT NAME, ADVISOR
FROM GRADUATE GR, GUIDE GU
WHERE GU.SUBJECT = GR.SUBJECT ;
+---------+---------+
| NAME | ADVISOR |
+---------+---------+
| KARAN | VINOD |
| DIVAKAR | ALOK |
| DIVYA | RAJAN |
| ARUN | VINOD |
| SABINA | MAHESH |
| JOHN | RAJAN |
| ROBERT | VINOD |
+---------+---------+

6. Display graduates whose advisor is Rajan.

SELECT NAME, ADVISOR


FROM GRADUATE GR, GUIDE GU
WHERE (GU.SUBJECT = GR.SUBJECT) AND (ADVISOR = "RAJAN") ;
+-------+---------+
| NAME | ADVISOR |
+-------+---------+
| DIVYA | RAJAN |
| JOHN | RAJAN |
+-------+---------+

7. Display the names of graduates whose stipend is divisible by 3.

SELECT NAME, STIPEND FROM GRADUATE


WHERE STIPEND % 3 = 0;

3|Page
+---------+---------+
| NAME | STIPEND |
+---------+---------+
| DIVAKAR | 450 |
| DIVYA | 300 |
+---------+---------+

8. Add stipend of graduates according to their subject.

SELECT SUBJECT, SUM(STIPEND) FROM GRADUATE


GROUP BY SUBJECT;
+-------------+--------------+
| SUBJECT | SUM(STIPEND) |
+-------------+--------------+
| PHYSICS | 1000 |
| COMPUTER SC | 450 |
| CHEMISTRY | 700 |
| MATHEMATICS | 500 |
+-------------+--------------+

9. Add stipend according to subjects whose division is 1st.

SELECT SUBJECT, SUM(STIPEND), DIVISION FROM GRADUATE


WHERE DIVISION = 1 GROUP BY SUBJECT;
+-------------+--------------+----------+
| SUBJECT | SUM(STIPEND) | DIVISION |
+-------------+--------------+----------+
| PHYSICS | 1000 | 1 |
| COMPUTER SC | 450 | 1 |
| MATHEMATICS | 500 | 1 |
+-------------+--------------+----------+

10. Show the details of graduates in the alphabetical order of their names.

SELECT * FROM GRADUATE ORDER BY NAME;


+------+---------+---------+-------------+---------+----------+
| SNO | NAME | STIPEND | SUBJECT | AVERAGE | DIVISION |
+------+---------+---------+-------------+---------+----------+
| 4 | ARUN | 350 | PHYSICS | 63 | 1 |
| 2 | DIVAKAR | 450 | COMPUTER SC | 68 | 1 |
| 3 | DIVYA | 300 | CHEMISTRY | 62 | 2 |
| 6 | JOHN | 400 | CHEMISTRY | 55 | 2 |
| 1 | KARAN | 400 | PHYSICS | 68 | 1 |
| 7 | ROBERT | 250 | PHYSICS | 64 | 1 |
| 5 | SABINA | 500 | MATHEMATICS | 70 | 1 |
+------+---------+---------+-------------+---------+----------+

11. To display the name, subject and advisor for all the graduates passing with
1st division.

SELECT NAME, GU.SUBJECT, DIVISION, ADVISOR


FROM GRADUATE GR, GUIDE GU
WHERE (GU.SUBJECT = GR.SUBJECT) AND (DIVISION = 1);

4|Page
+---------+-------------+----------+---------+
| NAME | SUBJECT | DIVISION | ADVISOR |
+---------+-------------+----------+---------+
| ROBERT | PHYSICS | 1 | VINOD |
| ARUN | PHYSICS | 1 | VINOD |
| KARAN | PHYSICS | 1 | VINOD |
| DIVAKAR | COMPUTER SC | 1 | ALOK |
| SABINA | MATHEMATICS | 1 | MAHESH |
+---------+-------------+----------+---------+

12. To display the name, stipend and advisor of all the graduates who scores
minimum 60%.

SELECT NAME, STIPEND, GR.SUBJECT, AVERAGE


FROM GRADUATE GR, GUIDE GU
WHERE (GU.SUBJECT = GR.SUBJECT) AND (AVERAGE >= 60);
+---------+---------+-------------+---------+
| NAME | STIPEND | SUBJECT | AVERAGE |
+---------+---------+-------------+---------+
| KARAN | 400 | PHYSICS | 68 |
| DIVAKAR | 450 | COMPUTER SC | 68 |
| DIVYA | 300 | CHEMISTRY | 62 |
| ARUN | 350 | PHYSICS | 63 |
| SABINA | 500 | MATHEMATICS | 70 |
| ROBERT | 250 | PHYSICS | 64 |
+---------+---------+-------------+---------+

13. To display the name of all the graduates whose advisor’s name starts with R.

SELECT NAME, ADVISOR


FROM GRADUATE GR, GUIDE GU
WHERE (GU.SUBJECT = GR.SUBJECT) AND (ADVISOR LIKE "R%");
OR
SELECT NAME, ADVISOR
FROM GRADUATE GR, GUIDE GU
WHERE (GU.SUBJECT = GR.SUBJECT) AND (LEFT(ADVISOR, 1) = "R");
+-------+---------+
| NAME | ADVISOR |
+-------+---------+
| DIVYA | RAJAN |
| JOHN | RAJAN |
+-------+---------+

14. To display the name, division and advisor for all graduates whose subject is
CHEMISTRY.

SELECT NAME, DIVISION, ADVISOR


FROM GRADUATE GR, GUIDE GU
WHERE (GU.SUBJECT = GR.SUBJECT) AND (GR.SUBJECT = "CHEMISTRY");
+-------+------+---------+
| NAME | DIVI | ADVISOR |
+-------+------+---------+
| DIVYA | 2 | RAJAN |
| JOHN | 2 | RAJAN |
+-------+------+---------+

5|Page
15. To display the SNO and name of all graduates who are under advisor VINOD.

SELECT SNO, NAME FROM GRADUATE GR, GUIDE GU


WHERE (GU.SUBJECT = GR.SUBJECT) AND (ADVISOR = "VINOD");
+------+--------+---------+
| SNO | NAME | ADVISOR |
+------+--------+---------+
| 1 | KARAN | VINOD |
| 4 | ARUN | VINOD |
| 7 | ROBERT | VINOD |
+------+--------+---------+

16. To display the name of graduates whose average is greater than the average
of DIVYA.

SELECT NAME FROM GRADUATE


WHERE AVERAGE > (SELECT AVERAGE FROM GRADUATE
WHERE NAME = "DIVYA");
+---------+
| NAME |
+---------+
| KARAN |
| DIVAKAR |
| ARUN |
| SABINA |
| ROBERT |
+---------+

17. To display the name of graduates whose subject is same as that of graduate
no.7.

SELECT SNO, NAME, SUBJECT FROM GRADUATE


WHERE SUBJECT = (SELECT SUBJECT FROM GRADUATE
WHERE SNO = 7);
+------+--------+---------+
| SNO | NAME | SUBJECT |
+------+--------+---------+
| 1 | KARAN | PHYSICS |
| 4 | ARUN | PHYSICS |
| 7 | ROBERT | PHYSICS |
+------+--------+---------+

18. To display the name and average of all the graduates who have topped in
their subject.

SELECT NAME, SUBJECT, MAX(AVERAGE) FROM GRADUATE


GROUP BY SUBJECT;
OR
SELECT NAME, SUBJECT, AVERAGE FROM GRADUATE
WHERE AVERAGE IN ( SELECT MAX(AVERAGE) FROM GRADUATE
GROUP BY SUBJECT) ;

6|Page
+---------+-------------+---------+
| NAME | SUBJECT | AVERAGE |
+---------+-------------+---------+
| KARAN | PHYSICS | 68 |
| DIVAKAR | COMPUTER SC | 68 |
| DIVYA | CHEMISTRY | 62 |
| SABINA | MATHEMATICS | 70 |
+---------+-------------+---------+

19. To display the name of all advisor along with number of students under them.

SELECT ADVISOR, COUNT(*) FROM GRADUATE GR, GUIDE GU


WHERE (GU.SUBJECT = GR.SUBJECT)
GROUP BY GR.SUBJECT;
OR
SELECT ADVISOR, COUNT( GRADUATE.SUBJECT ) FROM GUIDE, GRADUATE
WHERE GRADUATE.SUBJECT = GUIDE.SUBJECT
GROUP BY ADVISOR;
+---------+----------+
| ADVISOR | COUNT(*) |
+---------+----------+
| RAJAN | 2 |
| ALOK | 1 |
| MAHESH | 1 |
| VINOD | 3 |
+---------+----------+

20. To display names of subject wise toppers along with their Advisor’s name and
subject.

SELECT NAME, ADVISOR, GU.SUBJECT FROM GRADUATE GR, GUIDE GU


WHERE (GU.SUBJECT = GR.SUBJECT)
GROUP BY SUBJECT HAVING MAX(AVERAGE);
OR
SELECT NAME, GRADUATE.SUBJECT, ADVISOR FROM GRADUATE, GUIDE
WHERE GRADUATE.SUBJECT = GUIDE.SUBJECT
AND AVERAGE IN( SELECT MAX(AVERAGE) FROM GRADUATE
GROUP BY SUBJECT ) ;
+---------+---------+-------------+
| NAME | ADVISOR | SUBJECT |
+---------+---------+-------------+
| DIVYA | RAJAN | CHEMISTRY |
| DIVAKAR | ALOK | COMPUTER SC |
| SABINA | MAHESH | MATHEMATICS |
| KARAN | VINOD | PHYSICS |
+---------+---------+-------------+

21. To display the name of advisor along with total stipend paid in his subject.

SELECT ADVISOR, GR.SUBJECT, SUM(STIPEND) FROM GRADUATE GR, GUIDE GU


WHERE (GU.SUBJECT = GR.SUBJECT)
GROUP BY GR.SUBJECT;
+---------+-------------+--------------+
| ADVISOR | SUBJECT | SUM(STIPEND) |
+---------+-------------+--------------+
| RAJAN | CHEMISTRY | 700 |
| ALOK | COMPUTER SC | 450 |
| MAHESH | MATHEMATICS | 500 |
| VINOD | PHYSICS | 1000 |
+---------+-------------+--------------+

7|Page
Table: CLUB

CREATE TABLE CLUB( CID INT(2),


CNAME VARCHAR(10),
AGE INT(2),
SPORTS VARCHAR(15),
DOJ DATE,
PAY INT(5),
GEN CHAR(1),
NOP INT(2)
);

INSERT INTO CLUB VALUES( 1, 'KUKREJA', 35, 'KARATE', '2012-03-27', 10000, 'M', 20 );
INSERT INTO CLUB VALUES( 2, 'RAVINA', 34, 'KARATE', '2008-01-20', 12000, 'F', 15 );
INSERT INTO CLUB VALUES( 3, 'KARAN', 34, 'SQUASH', '2009-02-19', 20000, 'M', 2 );
INSERT INTO CLUB VALUES( 4, 'TARUN', 33, 'BASKETBALL', '2012-01-01', 15000, 'M', 16 );
INSERT INTO CLUB VALUES( 5, 'ZUBIN', 36, 'SWIMMING', '2008-01-12', 7000, 'M', 10 );
INSERT INTO CLUB VALUES( 6, 'KETAKI', 36, 'SWIMMING', '2012-02-24', 18000, 'F', 10 );
INSERT INTO CLUB VALUES( 7, 'ANKITA', 39, 'SQUASH', '2013-02-20', 22000, 'F', 5 );
INSERT INTO CLUB VALUES( 8, 'ZAREEN', 37, 'KARATE', '2010-02-22', 11000, 'M', 18 );
INSERT INTO CLUB VALUES( 9, 'KUSH', 41, 'SWIMMING', '2008-01-13', 9000, 'M', 17 );
INSERT INTO CLUB VALUES( 10, 'SHAILYA', 37, 'BASKETBALL', '2008-02-19', 17000, 'M', 17);

DESC CLUB;
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| CID | int(2) | YES | | NULL | |
| CNAME | varchar(10) | YES | | NULL | |
| AGE | int(2) | YES | | NULL | |
| SPORTS | varchar(15) | YES | | NULL | |
| DOJ | date | YES | | NULL | |
| PAY | int(5) | YES | | NULL | |
| GEN | char(1) | YES | | NULL | |
| NOP | int(2) | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+

SELECT * FROM CLUB;


+------+---------+------+------------+------------+-------+------+------+
| CID | CNAME | AGE | SPORTS | DOJ | PAY | GEN | NOP |
+------+---------+------+------------+------------+-------+------+------+
| 1 | KUKREJA | 35 | KARATE | 2012-03-27 | 10000 | M | 20 |
| 2 | RAVINA | 34 | KARATE | 2008-01-20 | 12000 | F | 15 |
| 3 | KARAN | 34 | SQUASH | 2009-02-19 | 20000 | M | 2 |
| 4 | TARUN | 33 | BASKETBALL | 2012-01-01 | 15000 | M | 16 |
| 5 | ZUBIN | 36 | SWIMMING | 2008-01-12 | 7000 | M | 10 |
| 6 | KETAKI | 36 | SWIMMING | 2012-02-24 | 18000 | F | 10 |
| 7 | ANKITA | 39 | SQUASH | 2013-02-20 | 22000 | F | 5 |
| 8 | ZAREEN | 37 | KARATE | 2010-02-22 | 11000 | M | 18 |
| 9 | KUSH | 41 | SWIMMING | 2008-01-13 | 9000 | M | 17 |
| 10 | SHAILYA | 37 | BASKETBALL | 2008-02-19 | 17000 | M | 17 |
+------+---------+------+------------+------------+-------+------+------+

1.To show all information about the swimming coaches in the club.

SELECT * FROM CLUB WHERE SPORTS = 'SWIMMING';

8|Page
+------+--------+------+----------+------------+-------+------+------+
| CID | CNAME | AGE | SPORTS | DOJ | PAY | GEN | NOP |
+------+--------+------+----------+------------+-------+------+------+
| 5 | ZUBIN | 36 | SWIMMING | 2008-01-12 | 7000 | M | 10 |
| 6 | KETAKI | 36 | SWIMMING | 2012-02-24 | 18000 | F | 10 |
| 9 | KUSH | 41 | SWIMMING | 2008-01-13 | 9000 | M | 17 |
+------+--------+------+----------+------------+-------+------+------+

2. To show all information of the CLUB which coach name start with "K"

SELECT * FROM CLUB WHERE CNAME LIKE 'K%';

+------+---------+------+----------+------------+-------+------+------+
| CID | CNAME | AGE | SPORTS | DOJ | PAY | GEN | NOP |
+------+---------+------+----------+------------+-------+------+------+
| 1 | KUKREJA | 35 | KARATE | 2012-03-27 | 10000 | M | 20 |
| 3 | KARAN | 34 | SQUASH | 2009-02-19 | 20000 | M | 2 |
| 6 | KETAKI | 36 | SWIMMING | 2012-02-24 | 18000 | F | 10 |
| 9 | KUSH | 41 | SWIMMING | 2008-01-13 | 9000 | M | 17 |
+------+---------+------+----------+------------+-------+------+------+

3. To show the names of coaches, sorted in descending order of the name.

SELECT CNAME FROM CLUB ORDER BY CNAME DESC;


+---------+
| CNAME |
+---------+
| ZUBIN |
| ZAREEN |
| TARUN |
| SHAILYA |
| RAVINA |
| KUSH |
| KUKREJA |
| KETAKI |
| KARAN |
| ANKITA |
+---------+

4. To find the total number of coaches in the club.

SELECT COUNT(CNAME) FROM CLUB;


+--------------+
| COUNT(CNAME) |
+--------------+
| 10 |
+--------------+

5. To list the names of all coaches with their date of appointment (DATEOFAPP) in
descending order.

SELECT CNAME, DOJ FROM CLUB


ORDER BY CNAME DESC, DOJ DESC;

9|Page
+---------+------------+
| CNAME | DOJ |
+---------+------------+
| ZUBIN | 2008-01-12 |
| ZAREEN | 2010-02-22 |
| TARUN | 2012-01-01 |
| SHAILYA | 2008-02-19 |
| RAVINA | 2008-01-20 |
| KUSH | 2008-01-13 |
| KUKREJA | 2012-03-27 |
| KETAKI | 2012-02-24 |
| KARAN | 2009-02-19 |
| ANKITA | 2013-02-20 |
+---------+------------+

6. To display names of all Male coaches and their age, working in CLUB.

SELECT CNAME, AGE FROM CLUB WHERE GEN = 'M';


+---------+------+
| CNAME | AGE |
+---------+------+
| KUKREJA | 35 |
| KARAN | 34 |
| TARUN | 33 |
| ZUBIN | 36 |
| ZAREEN | 37 |
| KUSH | 41 |
| SHAILYA | 37 |
+---------+------+

7. To find the total number of coaches in the club.

SELECT COUNT(CNAME) FROM CLUB;

+--------------+
| COUNT(CNAME) |
+--------------+
| 10 |
+--------------+

8. Display details of all female coaches whose age is more than 35 and salary
between 15000 and 20000.

SELECT * FROM CLUB


WHERE GEN = 'F' AND AGE > 35 AND PAY BETWEEN 15000 AND 20000;

+------+--------+------+----------+------------+-------+------+------+
| CID | CNAME | AGE | SPORTS | DOJ | PAY | GEN | NOP |
+------+--------+------+----------+------------+-------+------+------+
| 6 | KETAKI | 36 | SWIMMING | 2012-02-24 | 18000 | F | 10 |
+------+--------+------+----------+------------+-------+------+------+

9. To display a report, showing coach name, pay, age and bonus (15% of Pay) for
all the coaches.

SELECT CNAME, AGE, PAY, PAY*0.15 "BONUS" FROM CLUB ;

10 | P a g e
+---------+------+-------+---------+
| CNAME | AGE | PAY | BONUS |
+---------+------+-------+---------+
| KUKREJA | 35 | 10000 | 1500.00 |
| RAVINA | 34 | 12000 | 1800.00 |
| KARAN | 34 | 20000 | 3000.00 |
| TARUN | 33 | 15000 | 2250.00 |
| ZUBIN | 36 | 7000 | 1050.00 |
| KETAKI | 36 | 18000 | 2700.00 |
| ANKITA | 39 | 22000 | 3300.00 |
| ZAREEN | 37 | 11000 | 1650.00 |
| KUSH | 41 | 9000 | 1350.00 |
| SHAILYA | 37 | 17000 | 2550.00 |
+---------+------+-------+---------+

10. Display all the games available in the club.

SELECT DISTINCT SPORTS FROM CLUB;

+------------+
| SPORTS |
+------------+
| KARATE |
| SQUASH |
| BASKETBALL |
| SWIMMING |
+------------+
11. To find number of coaches appointed for each game.

SELECT SPORTS, COUNT(*) FROM CLUB


GROUP BY SPORTS;

+------------+----------+
| SPORTS | COUNT(*) |
+------------+----------+
| BASKETBALL | 2 |
| KARATE | 3 |
| SQUASH | 2 |
| SWIMMING | 3 |
+------------+----------+

12. To display expenditure incurred (amount paid) for each Sport in the club.

SELECT SPORTS, SUM(PAY) FROM CLUB


GROUP BY SPORTS;

+------------+----------+
| SPORTS | SUM(PAY) |
+------------+----------+
| BASKETBALL | 32000 |
| KARATE | 33000 |
| SQUASH | 42000 |
| SWIMMING | 34000 |
+------------+----------+

13. Display total pay earn by club gender wise also display no. of coaches in
each gender.

SELECT COUNT(*), GEN, SUM(PAY) FROM CLUB


GROUP BY GEN;
11 | P a g e
+----------+------+----------+
| COUNT(*) | GEN | SUM(PAY) |
+----------+------+----------+
| 3 | F | 52000 |
| 7 | M | 89000 |
+----------+------+----------+

14. To display expenditure incurred (amount paid) for each Sport in the club.

SELECT SPORTS, SUM(PAY) FROM CLUB


GROUP BY SPORTS;
+------------+----------+
| SPORTS | SUM(PAY) |
+------------+----------+
| BASKETBALL | 32000 |
| KARATE | 33000 |
| SQUASH | 42000 |
| SWIMMING | 34000 |
+------------+----------+

15.Name all coaches appointed on Monday.

SELECT CNAME FROM CLUB


WHERE DAYNAME(DOJ) = "MONDAY";
+--------+
| CNAME |
+--------+
| ZAREEN |
+--------+

16.Name and age of the eldest coach.

SELECT CNAME, AGE FROM CLUB


WHERE AGE = (SELECT MAX(AGE) FROM CLUB);
+-------+------+
| CNAME | AGE |
+-------+------+
| KUSH | 41 |
+-------+------+

17.To count the number of coaches who were appointed on odd dates.

SELECT COUNT(*)"NUMBER OF COACHES" FROM CLUB


WHERE DAY(DOJ) % 2 <> 0;
+-------------------+
| NUMBER OF COACHES |
+-------------------+
| 5 |
+-------------------+

18.To find the sum of total pay from club.

SELECT SUM(PAY) FROM CLUB;


+----------+
| SUM(PAY) |
+----------+
| 141000 |
+----------+
12 | P a g e
19.Display the name whose date of join is in month of March.

SELECT CNAME FROM CLUB


WHERE MONTHNAME(DOJ) = "MARCH";

+---------+
| CNAME |
+---------+
| KUKREJA |
+---------+

20.To update the PAY of Kush to 10000.

UPDATE CLUB SET PAY = 10000


WHERE CNAME = "KUSH";

Query OK, 1 row affected (0.03 sec)


Rows matched: 1 Changed: 1 Warnings: 0
+------+-------+------+----------+------------+-------+------+------+
| CID | CNAME | AGE | SPORTS | DOJ | PAY | GEN | NOP |
+------+-------+------+----------+------------+-------+------+------+
| 9 | KUSH | 41 | SWIMMING | 2008-01-13 | 10000 | M | 17 |
+------+-------+------+----------+------------+-------+------+------+

21. To display the record where pay is null.

SELECT * FROM CLUB WHERE PAY IS NULL;


Empty set (0.00 sec)

22.Display coach name where the middle name contains A.

SELECT CNAME FROM CLUB


WHERE CNAME LIKE "%A%";

+---------+
| CNAME |
+---------+
| KUKREJA |
| RAVINA |
| KARAN |
| TARUN |
| KETAKI |
| ANKITA |
| ZAREEN |
| SHAILYA |
+---------+

13 | P a g e
Table: Scholar & Exam

CREATE TABLE SCHOLAR( rno int(2),


schno int(4),
name varchar(15),
cl int(2),
sec char(1)
);

INSERT INTO SCHOLAR VALUES( 1, 1200, "RAVI KUMAR", 12 , 'A')


INSERT INTO SCHOLAR VALUES( 1, 1290, "MEENAKSHI", 12 'B' )
INSERT INTO SCHOLAR VALUES( 2, 1265, "MOHAN SINGH", 12 'C' )
INSERT INTO SCHOLAR VALUES( 1, 1299, "ASTHA SEHGAL", 11 'D' )
INSERT INTO SCHOLAR VALUES( 2, 1301, "RAMESH JAIN", 11 'A' )
INSERT INTO SCHOLAR VALUES( 1, 1308, "SITARAMAN", 11 'C' )

CREATE TABLE EXAM( edate date,


class int(2),
subject varchar(15)
);

INSERT INTO EXAM VALUES(2017-03-03, 11, "MATHEMATICS")


INSERT INTO EXAM VALUES(2017-03-04, 12, "MATHEMATICS")
INSERT INTO EXAM VALUES(2017-03-04, 11, "HINDI")
INSERT INTO EXAM VALUES(2017-03-03, 12, "ACCOUNTS")
INSERT INTO EXAM VALUES(2017-03-07, 12, "B.ST")
INSERT INTO EXAM VALUES(2017-03-08, 12, "I.P")

SELECT * FROM EXAM;

+------------+-------+-------------+
| edate | class | subject |
+------------+-------+-------------+
| 2017-03-03 | 11 | MATHEMATICS |
| 2017-03-04 | 12 | MATHEMATICS |
| 2017-03-04 | 11 | HINDI |
| 2017-03-03 | 12 | ACCOUNTS |
| 2017-03-07 | 12 | B.ST |
| 2017-03-08 | 12 | I.P |
+------------+-------+-------------+

DESC EXAM;

+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| edate | date | YES | | NULL | |
| class | int(2) | YES | | NULL | |
| subject | varchar(15) | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+

14 | P a g e
DESC SCHOLAR;

+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| rno | int(2) | YES | | NULL | |
| schno | int(4) | YES | | NULL | |
| name | varchar(15) | YES | | NULL | |
| cl | int(2) | YES | | NULL | |
| sec | char(1) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+

SELECT * FROM SCHOLAR;

+------+-------+--------------+------+------+
| rno | schno | name | cl | sec |
+------+-------+--------------+------+------+
| 1 | 1200 | RAVI KUMAR | 12 | A |
| 1 | 1290 | MEENAKSHI | 12 | B |
| 2 | 1265 | MOHAN SINGH | 12 | C |
| 1 | 1299 | ASTHA SEHGAL | 11 | D |
| 2 | 1301 | RAMESH JAIN | 11 | A |
| 1 | 1308 | SITARAMAN | 11 | C |
+------+-------+--------------+------+------

1.SHOW NAME OF THOSE STUDENT WHOSE SIR NAME HAS 4 LETTERS

SELECT name FROM SCHOLAR WHERE name LIKE'% ____';

+-------------+
| name |
+-------------+
| RAMESH JAIN |
+-------------+

2.SHOW THE DETAILS OF STUDENT WHOSE CLASS IS 12 AND SEC IS B.

SELECT * FROM SCHOLAR WHERE CL = 12 AND SEC = 'B';

+------+-------+-----------+------+------+
| rno | schno | name | cl | sec |
+------+-------+-----------+------+------+
| 1 | 1290 | MEENAKSHI | 12 | B |
+------+-------+-----------+------+------+

3.SHOW THE DETAILS OF STUDENT RAVI KUMAR .

SELECT * FROM SCHOLAR WHERE NAME = 'RAVI KUMAR';

+------+-------+------------+------+------+
| rno | schno | name | cl | sec |
+------+-------+------------+------+------+
| 1 | 1200 | RAVI KUMAR | 12 | A |
| 1 | 1200 | RAVI KUMAR | 12 | A |
| 1 | 1200 | RAVI KUMAR | 12 | A |
+------+-------+------------+------+------+

15 | P a g e
4.SHOW THE DETAILS OF ALL THE STUDENT WHOSE CLASS IS 11 AND ORDER BY THEIR
SECTION.

SELECT * FROM SCHOLAR WHERE CL = 11 ORDER BY SEC;

+------+-------+--------------+------+------+
| rno | schno | name | cl | sec |
+------+-------+--------------+------+------+
| 2 | 1301 | RAMESH JAIN | 11 | A |
| 1 | 1308 | SITARAMAN | 11 | C |
| 1 | 1299 | ASTHA SEHGAL | 11 | D |
+------+-------+--------------+------+------+

5.SHOW THE SCHOLAR NUMBER OF ASTHA SEHGAL.

SELECT SCHNO FROM SCHOLAR WHERE NAME = 'ASTHA SEHGAL';


+-------+
| SCHNO |
+-------+
| 1299 |
+-------+

6.UPDATE THE SECTION OF RAMESH JAIN TO B.

UPDATE SCHOLAR SET = 'B' WHERE NAME = 'RAMESH JAIN';

7.SHOW DETAILS OF STUDENT ACCORDING TO CLASS AND SECTION.

SELECT * FROM SCHOLAR ORDER BY CL, SEC;

+------+-------+--------------+------+------+
| rno | schno | name | cl | sec |
+------+-------+--------------+------+------+
| 2 | 1301 | RAMESH JAIN | 11 | A |
| 1 | 1308 | SITARAMAN | 11 | C |
| 1 | 1299 | ASTHA SEHGAL | 11 | D |
| 1 | 1200 | RAVI KUMAR | 12 | A |
| 1 | 1290 | MEENAKSHI | 12 | B |
| 2 | 1265 | MOHAN SINGH | 12 | C |
+------+-------+--------------+------+------+

8.DISPLAY NAME, SUBJECT , EDATE WHEN IP EXAM IS SCHEDULED.

SELECT NAME, SUBJECT, EDATE FROM SCHOLAR S, EXAM E


WHERE(S.CL = E.CLASS) AND SUBJECT = 'I.P';

+-------------+---------+------------+
| NAME | SUBJECT | EDATE |
+-------------+---------+------------+
| RAVI KUMAR | I.P | 2017-03-08 |
| RAVI KUMAR | I.P | 2017-03-08 |
| RAVI KUMAR | I.P | 2017-03-08 |
| MEENAKSHI | I.P | 2017-03-08 |
| MOHAN SINGH | I.P | 2017-03-08 |
+-------------+---------+------------+

16 | P a g e
9.COUNT THE NUMBER OF STUDENT.

SELECT COUNT(*) FROM SCHOLAR ;


+----------+
| COUNT(*) |
+----------+
| 8 |
+----------+

10.DISPLAY THE NAME OF SUBJECT AS LAST LETTER FIRST AND REST AFTER THAT.
SELECT SUBJECT, CONCAT(RIGHT(SUBJECT, 1), LEFT(SUBJECT, LENGTH(SUBJECT) -1))
"NEW NAME" FROM EXAM;
+-------------+-------------+
| SUBJECT | NEW NAME |
+-------------+-------------+
| MATHEMATICS | SMATHEMATIC |
| MATHEMATICS | SMATHEMATIC |
| HINDI | IHIND |
| ACCOUNTS | SACCOUNT |
| B.ST | TB.S |
| I.P | PI. |
+-------------+-------------+

11. DISPLAY THE NAME OF SUBJECT AS LAST 2 ND LETTERS IN FIRST PLACE, REMOVE 3 RD
LAST LETTER AND REMAINING AFTER THAT.

SELECT SUBJECT, CONCAT(RIGHT(SUBJECT, 2), LEFT(SUBJECT, LENGTH(SUBJECT) -3)) "


NEW SUBJECTS " FROM EXAM;
+-------------+---------------+
| SUBJECT | NEW SUBJECTS |
+-------------+---------------+
| MATHEMATICS | CSMATHEMAT |
| MATHEMATICS | CSMATHEMAT |
| HINDI | DIHI |
| ACCOUNTS | TSACCOU |
| B.ST | STB |
| I.P | .P |
+-------------+---------------+

12.DISPLAY THE EDATE, CLASS, SUBJECT WHOSE EXAM WILL HELD ON TUESDAY

SELECT * FROM EXAM WHERE DAYNAME(EDATE) = "TUESDAY";


+------------+-------+---------+
| edate | class | subject |
+------------+-------+---------+
| 2017-03-07 | 12 | B.ST |
+------------+-------+---------+

13.DISPLAY THE SUBJECT WHICH WAS SCHEDULED ON A SPECIFIC DATA '2017-03-08'.

SELECT DISTINCT SUBJECT FROM EXAM WHERE EDATE = '2017-03-08';


+---------+
| SUBJECT |
+---------+
| I.P |
+---------+

17 | P a g e
14.DISPLAY THE LIST OF EXAM SUBJECT THAT ARE PRESENT IN THE EXAM TABLE.
SELECT DISTINCT SUBJECT FROM EXAM;

+-------------+
| SUBJECT |
+-------------+
| MATHEMATICS |
| HINDI |
| ACCOUNTS |
| B.ST |
| I.P |
+-------------+

15.DISPLAY THE NUMBER OF EXAMS THAT WERE SCHEDULED ON THAT DATES.

SELECT EDATE, COUNT(*) FROM EXAM GROUP BY EDATE;

+------------+----------+
| EDATE | COUNT(*) |
+------------+----------+
| 2017-03-03 | 2 |
| 2017-03-04 | 2 |
| 2017-03-07 | 1 |
| 2017-03-08 | 1 |
+------------+----------+

16.DISPLAY THE DETAILS OF HINDI EXAM.

SELECT SUBJECT, CLASS, EDATE FROM EXAM WHERE SUBJECT = 'HINDI' AND CLASS = 11;

+---------+-------+------------+
| SUBJECT | CLASS | EDATE |
+---------+-------+------------+
| HINDI | 11 | 2017-03-04 |
+---------+-------+------------+

18 | P a g e
TABLE: HOSPITAL

CREATE TABLE HOSPITAL( SNO INT(2),


NAME VARCHAR(13),
AGE INT(2),
GEN CHAR(1),
DEPARTMENT VARCHAR(16),
ADMIT_ON DATE,
FEES INT(3)
);

INSERT INTO HOSPITAL VALUES (1,'ARPIT KUMAR', 62, 'M', 'SURGERY', '2016-01-21', 300);
INSERT INTO HOSPITAL VALUES (2,'ZAREENA OMAR', 22, 'F', 'ENT', '2015-12-12', 250);
INSERT INTO HOSPITAL VALUES (3,'KAREEM DURANI',32, 'M', 'ORTHOPEDIC', '2016-02-19', 200);
INSERT INTO HOSPITAL VALUES (4,'ARUN SINGH', 32, 'M', 'SURGERY', '2016-01-11', 300);
INSERT INTO HOSPITAL VALUES (5,'ZUBIN MEHTA', 30, 'M', 'ENT', '2016-01-12', 250);
INSERT INTO HOSPITAL VALUES (6, 'KETAKI VERMA', 16, 'F', 'ENT', '2016-02-24', 250);
INSERT INTO HOSPITAL VALUES (7,'ANKITA GUPTA', 29, 'F', 'CARDIOLOGY', '2016-02-20', 800);
INSERT INTO HOSPITAL VALUES (8,'ZAREEN KHAN', 45, 'F', 'GYNAECOLOGY', '2016-02-22', 300);
INSERT INTO HOSPITAL VALUES (9, 'KUSH PRATAP', 19, 'M', 'CARDIOLOGY', '2016-01-13', 800);
INSERT INTO HOSPITAL VALUES (10,'SHILPA JAIN',23,'F','NUCLEAR MEDICINE','2016-01-11',400);

SELECT * FROM HOSPITAL;


+------+---------------+------+------------------+------------+---------+--------+
| SNO | NAME | AGE | DEPARTMENT | ADMIT_ON | CHARGES | GENDER |
+------+---------------+------+------------------+------------+---------+--------+
| 1 | Arpit Kumar | 62 | Surgery | 2016-01-21 | 300 | M |
| 2 | Zareena Omar | 22 | ENT | 2015-12-12 | 250 | F |
| 3 | Kareem Durani | 32 | Orthopaedic | 2016-02-19 | 200 | M |
| 4 | Arun Singh | 32 | Surgery | 2016-01-11 | 300 | M |
| 5 | Zubin Mehta | 30 | ENT | 2016-01-12 | 250 | M |
| 6 | Ketaki Verma | 16 | ENT | 2016-02-24 | 250 | F |
| 7 | Ankita Gupta | 29 | CARDIOLOGY | 2016-02-20 | 800 | F |
| 8 | Zareen Khan | 45 | Gynaecology | 2016-02-22 | 300 | F |
| 9 | Kush Pratap | 19 | Cardiology | 2016-01-13 | 800 | M |
| 10 | Shilpa Jain | 23 | Nuclear Medicine | 2016-02-21 | 400 | F |
+------+---------------+------+------------------+------------+---------+--------+

Q1) NAME ALL THE PATIENTS ADMITTED IN '2016' AND IN THE MONTH OF 'JANUARY'?

SELECT DEPARTMENT, COUNT(*) 'NUMBER', SUM(CHARGES) FROM HOSPITAL


GROUP BY DEPARTMENT;
+------------------+--------+--------------+
| DEPARTMENT | NUMBER | SUM(CHARGES) |
+------------------+--------+--------------+
| CARDIOLOGY | 2 | 1600 |
| ENT | 3 | 750 |
| Gynaecology | 1 | 300 |
| Nuclear Medicine | 1 | 400 |
| Orthopaedic | 1 | 200 |
| Surgery | 2 | 600 |
+------------------+--------+--------------+

Q2) DISPLAY DEPARTMENT WISE TOTAL CHARGES COLLECTED

SELECT * FROM HOSPITAL


WHERE YEAR(ADMIT_ON) = 2016 AND MONTH(ADMIT_ON) = 1;

19 | P a g e
+------+-------------+------+------------+------------+---------+--------+
| SNO | NAME | AGE | DEPARTMENT | ADMIT_ON | CHARGES | GENDER |
+------+-------------+------+------------+------------+---------+--------+
| 1 | Arpit Kumar | 62 | Surgery | 2016-01-21 | 300 | M |
| 4 | ArunSingh | 32 | Surgery | 2016-01-11 | 300 | M |
| 5 | Zubin Mehta | 30 | ENT | 2016-01-12 | 250 | M |
| 9 | Kush Pratap | 19 | Cardiology | 2016-01-13 | 800 | M |
+------+-------------+------+------------+------------+---------+--------+

Q3) DISPLAY MONTH WISE NO OF PATIENTS ADMITTED

SELECT MONTHNAME(ADMIT_ON), COUNT(MONTHNAME(ADMIT_ON)) FROM HOSPITAL


GROUP BY MONTHNAME(ADMIT_ON);
+---------------------+----------------------------+
| MONTHNAME(ADMIT_ON) | COUNT(MONTHNAME(ADMIT_ON)) |
+---------------------+----------------------------+
| December | 1 |
| February | 5 |
| January | 4 |
+---------------------+----------------------------+

Q4) NAME THE PATIENTS WHO LAST NAME IN 4 LETTER

SELECT NAME FROM HOSPITAL WHERE NAME LIKE '% ____';


+--------------+
| NAME |
+--------------+
| Zareena Omar |
| Zareen Khan |
| Shilpa Jain |
+--------------+

Q5) NAME THE PATIENTS WHO WERER ADMITTED AFTER ZAREEN KHAN

SELECT NAME FROM HOSPITAL


WHERE ADMIT_ON > (SELECT ADMIT_ON FROM HOSPITAL WHERE NAME = 'ZAREEN KHAN');
+--------------+
| NAME |
+--------------+
| Ketaki Verma |
+--------------+

Q6) Name the department having youngest patient

SELECT DEPARTMENT FROM HOSPITAL


WHERE AGE = (SELECT MIN(AGE) FROM HOSPITAL);
+------------+
| DEPARTMENT |
+------------+
| ENT |
+------------+
Q7 Display the Name of department having youngest patient, along with
patient's name and age

SELECT DEPARTMENT, NAME,AGE FROM HOSPITAL WHERE AGE = (SELECT MIN(AGE) FROM
HOSPITAL);

20 | P a g e
+------------+--------------+------+
| DEPARTMENT | NAME | AGE |
+------------+--------------+------+
| ENT | Ketaki Verma | 16 |
+------------+--------------+------+

Q8) Name and age of the eldest Patient

SELECT NAME, AGE FROM HOSPITAL WHERE AGE = (SELECT MIN(AGE) FROM HOSPITAL);
+--------------+------+
| NAME | AGE |
+--------------+------+
| Ketaki Verma | 16 |
+--------------+------+

Q9) Name the patients and their age, who are younger than zubin mehta

SELECT NAME, AGE FROM HOSPITAL


WHERE AGE < (SELECT AGE FROM HOSPITAL WHERE NAME = "ZUBIN MEHTA");
+---------------+------+
| NAME | AGE |
+---------------+------+
| Arpit Kumar | 62 |
| Kareem Durani | 32 |
| Arun Singh | 32 |
| Zareen Khan | 45 |
+---------------+------+

Q10) What is the average age of the female patients?

SELECT AVG(AGE) 'AVERAGE AGE' FROM HOSPITAL WHERE GENDER = 'F';


+-------------+
| AVERAGE AGE |
+-------------+
| 27.0000 |
+-------------+

Q11) Name the first patient of surgery department.

SELECT NAME FROM HOSPITAL WHERE ADMIT_ON = (SELECT MIN(ADMIT_ON) FROM HOSPITAL);
+--------------+
| NAME |
+--------------+
| Zareena Omar |
+--------------+

Q12) Name all the patients which were admitted on the same date as

that of the first patient of surgery department.

SELECT NAME FROM HOSPITAL WHERE ADMIT_ON = (SELECT MIN(ADMIT_ON) FROM HOSPITAL
WHERE DEPARTMENT = 'SURGERY');
+------------+
| NAME |
+------------+
| Arun Singh |
+------------+
21 | P a g e
Q13) Display last name and its length for all the patients.

SELECT MID(NAME, INSTR(NAME, ' ')+1) 'LAST NAME',


LENGTH(MID(NAME, INSTR(NAME, ' ')-1))FROM HOSPITAL;
+-------------+----------------------------------------+
| LAST NAME | LENGTH(MID(NAME, INSTR(NAME, '')+1)) |
+---------------+--------------------------------------+
| Arpit Kumar | 10 |
| Qareena Omar | 11 |
| Kareem Durani | 12 |
| Arun Singh | 9 |
| Zubin Mehta | 10 |
| Ketaki Verma | 11 |
| Ankita Gupta | 11 |
| Kareen Khan | 10 |
| Kush Pratap | 10 |
| Shilpa Jain | 10 |
+---------------+--------------------------------------+

Q14) Display all the names having last name >= first name (length wise).

SELECT NAME FROM HOSPITAL


WHERE LENGTH(MID(NAME, INSTR(NAME, ' ')+1)) >= LENGTH(LEFT(NAME, INSTR(NAME, ' ')-1));
+---------------+
| NAME |
+---------------+
| Arpit Kumar |
| Kareem Durani |
| Arun Singh |
| Zubin Mehta |
| Kush Pratap |
+---------------+

Q15). Display total fees collected from female patients.

SELECT SUM(CHARGES) 'TOTAL' FROM HOSPITAL WHERE GENDER = 'F';


+-------+
| TOTAL |
+-------+
| 2000 |
+-------+

Q16) Display the date, when the 1st patient was admitted in surgery department.

SELECT MIN(ADMIT_ON) 'DATE'FROM HOSPITAL


WHERE DEPARTMENT = 'SURGERY';
+------------+
| DATE |
+------------+
| 2016-01-11 |
+------------+

Q17) . Display the number of male patients in the ENT Department.

SELECT COUNT(*) 'NUMBER' FROM HOSPITAL


WHERE DEPARTMENT = 'ENT' AND GENDER = 'M';
22 | P a g e
+--------+
| NUMBER |
+--------+
| 1 |
+--------+

Q18) . To display details of those Patient's, whose name starts with a Vowel.

SELECT * FROM HOSPITAL WHERE LEFT(NAME, 1) IN ('A','E','I','O','U');


+------+--------------+------+------------+------------+---------+--------+
| SNO | NAME | AGE | DEPARTMENT | ADMIT_ON | CHARGES | GENDER |
+------+--------------+------+------------+------------+---------+--------+
| 1 | Arpit Kumar | 62 | Surgery | 2016-01-21 | 300 | M |
| 4 | Arun Singh | 32 | Surgery | 2016-01-11 | 300 | M |
| 7 | Ankita Gupta | 29 | CARDIOLOGY | 2016-02-20 | 800 | F |
+------+--------------+------+------------+------------+---------+--------+

23 | P a g e
Table: CRICKET & HOCKEY

CREATE TABLE CRICKET( NAME VARCHAR(7));

DESC CRICKET;
+-------+------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------+------+-----+---------+-------+
| NAME | varchar(5) | YES | | NULL | |
+-------+------------+------+-----+---------+-------+

INSERT INTO CRICKET VALUES("THREE");


INSERT INTO CRICKET VALUES("FIVE");
INSERT INTO CRICKET VALUES("SIX");
INSERT INTO CRICKET VALUES("NINE");

SELECT * FROM CRICKET;


+-------+
| NAME |
+-------+
| THREE |
| FIVE |
| SIX |
| NINE |
+-------+

CREATE TABLE HOCKEY( NAME VARCHAR(7));

DESC HOCKEY;
+-------+------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------+------+-----+---------+-------+
| NAME | varchar(5) | YES | | NULL | |
+-------+------------+------+-----+---------+-------+

INSERT INTO HOCKEY VALUES("ONE");


INSERT INTO HOCKEY VALUES("TWO");
INSERT INTO HOCKEY VALUES("FOUR");
INSERT INTO HOCKEY VALUES("THREE");
INSERT INTO HOCKEY VALUES("EIGHT");

SELECT * FROM HOCKEY;

+-------+
| NAME |
+-------+
| ONE |
| TWO |
| FOUR |
| THREE |
| EIGHT |
+-------+

24 | P a g e
Q. Answer the following queries.

1. Display total number of students in hockey.

SELECT COUNT(NAME) FROM HOCKEY;


+-------------+
| COUNT(NAME) |
+-------------+
| 5 |
+-------------+

2. Display total number of students in cricket.

SELECT COUNT(NAME) FROM CRICKET;


+-------------+
| COUNT(NAME) |
+-------------+
| 4 |
+-------------+

3. Display name of those students who are playing both the games.

SELECT NAME FROM CRICKET


WHERE NAME IN( SELECT NAME FROM HOCKEY);
+-------+
| NAME |
+-------+
| THREE |
+-------+

4. Display name of those students who are playing only CRICKET.

SELECT NAME FROM CRICKET


WHERE NAME NOT IN( SELECT NAME FROM HOCKEY);
+------+
| NAME |
+------+
| FIVE |
| SIX |
| NINE |
+-----+

5. Display name of those students who are playing only HOCKEY.

SELECT NAME FROM HOCKEY


WHERE NAME NOT IN( SELECT NAME FROM CRICKET);
+-------+
| NAME |
+-------+
| ONE |
| TWO |
| FOUR |
| EIGHT |
+-------+

25 | P a g e
6. DISPLAY NAME OF THOSE PEOPLE WHOSE NAME START WITH A VOWEL AND ENDS WITH A
VOWEL IN HOCKEY.

SELECT NAME FROM HOCKEY


WHERE LEFT(NAME, 1) IN ("A", "E", "I", "O", "U")
AND RIGHT(NAME, 1) IN ("A", "E", "I", "O", "U");
+------+
| NAME |
+------+
| ONE |
+------+

7. READ THE NAME OF HOCKEY STUDENTS FROM SECOND PLACE.

SELECT NAME, SUBSTRING(NAME, 2)"NEW NAME" FROM HOCKEY;


+-------+----------+
| NAME | NEW NAME |
+-------+----------+
| ONE | NE |
| TWO | WO |
| FOUR | OUR |
| THREE | HREE |
| EIGHT | IGHT |
+-------+----------+

8. DISPLAY NAMES OF ALL THE STUDENTS.

SELECT * FROM HOCKEY UNION SELECT * FROM CRICKET;


+------+
| NAME |
+-------+
| ONE |
| TWO |
| FOUR |
| THREE |
| EIGHT |
| FIVE |
| SIX |
| NINE |
+-------+

26 | P a g e
TABLE: VEHICLE & CHALLAN

CREATE TABLE VEHICLE( REGNO CHAR(10) PRIMARY KEY,


REGDATE DATE,
OWNER VARCHAR(20),
ADDRESS VARCHAR(35)
);

INSERT INTO VEHICLE VALUES('UP78BF1234', '2012-01-16', 'DEEPAK YADAV', '255, Z-BLOCK, PANKI');
INSERT INTO VEHICLE VALUES('UP78DE8040','2014-09-12','JASNOOR KAUR','41/85, GANGA GANJ, RAMPUR');
INSERT INTO VEHICLE VALUES('UP78DC7978', '2013-05-19', 'KASHISH TIWARI', '255, X-BLOCK, PANKI');
INSERT INTO VEHICLE VALUES('UP78DX4548','2014-09-17','SAUMYA SINGH','E2/357, GANGA GANJ, SITAPUR');
INSERT INTO VEHICLE VALUES('UP78DE7011','2013-10-05','SUPRIYA DWIVEDI','123/420, ASHOK NAGAR, KANPUR' );
INSERT INTO VEHICLE VALUES('UP78GT0332','2015-08-15','VISHESH SINGH','910, GREEN GARDEN, KANPUR');
INSERT INTO VEHICLE VALUES('UP78RE1198','2016-08-23','KRITIKA NISHAD','56-G, VISHNU PURI, KANPUR');
INSERT INTO VEHICLE VALUES('UP78RZ1198','2016-09-02','JATIN SINGH','11/34, SHANTI NAGAR, KANPUR');
INSERT INTO VEHICLE VALUES('UP78ZX0420', '2016-12-23', 'GABBAR SINGH', 'GRAM RAMGARH');

SELECT * FROM VEHICLE;


+------------+------------+-----------------+------------------------------+
| REGNO | REGDATE | OWNER | ADDRESS |
+------------+------------+-----------------+------------------------------+
| UP78BF1234 | 2012-01-16 | DEEPAK YADAV | 255, Z-BLOCK, PANKI |
| UP78DE8040 | 2014-09-12 | JASNOOR KAUR | 41/85, GANGA GANJ, RAMPUR |
| UP78DC7978 | 2013-05-19 | KASHISH TIWARI | 255, X-BLOCK, PANKI |
| UP78DX4548 | 2014-09-17 | SAUMYA SINGH | E2/357, GANGA GANJ, SITAPUR |
| UP78DE7011 | 2013-10-05 | SUPRIYA DWIVEDI | 123/420, ASHOK NAGAR, KANPUR |
| UP78GT0332 | 2015-08-15 | VISHESH SINGH | 910, GREEN GARDEN, KANPUR |
| UP78RE1198 | 2016-08-23 | KRITIKA NISHAD | 56-G, VISHNU PURI, KANPUR |
| UP78RZ1198 | 2016-09-02 | JATIN SINGH | 11/34, SHANTI NAGAR, KANPUR |
| UP78ZX0420 | 2016-12-23 | GABBAR SINGH | GRAM RAMGARH |
+------------+------------+-----------------+------------------------------+

CREATE TABLE CHALLAN( CHALLAN_NO INT (6) PRIMARY KEY,


CH_DATE DATE ,
REGNO CHAR( 10 ),
OFFENCE INT( 3 )
);

INSERT INTO CHALLAN VALUES( 111011 , '2017-03-02', 'UP78DX4548 ' , 101);


INSERT INTO CHALLAN VALUES( 111012 , '2017-03-02', 'UP78BF1234 ', 102);
INSERT INTO CHALLAN VALUES( 111013, '2017-03-12', 'UP78DE7011 ', 104);
INSERT INTO CHALLAN VALUES( 111089 , '2017-04-13' , 'UP78DE8040' , 108);
INSERT INTO CHALLAN VALUES( 111090 , '2017-04-13' , 'UP78DC7978' , 101);
INSERT INTO CHALLAN VALUES( 111110 , '2017-06-22' , 'UP78DC7978' , 102);
INSERT INTO CHALLAN VALUES( 111489 , '2018-05-06' , 'UP78DE8040' , 103);
INSERT INTO CHALLAN VALUES( 111501 , '2018-07-21' , 'UP78DC7978' , 101);
INSERT INTO CHALLAN VALUES( 111513 , '2018-07-20' , 'UP78DE7011' , 106);
INSERT INTO CHALLAN VALUES( 111987 , '2019-07-29' , 'UP78BF1234' , 102);
INSERT INTO CHALLAN VALUES( 111990 , '2019-08-07' , 'UP78RZ1198' , 102);

SELECT * FROM CHALLAN;

27 | P a g e
+------------+------------+------------+---------+
| CHALLAN_NO | CH_DATE | REGNO | OFFENCE |
+------------+------------+------------+---------+
| 111011 | 2017-03-02 | UP78DX4548 | 101 |
| 111012 | 2017-03-02 | UP78BF1234 | 102 |
| 111013 | 2017-03-12 | UP78DE7011 | 104 |
| 111089 | 2017-04-13 | UP78DE8040 | 108 |
| 111090 | 2017-04-13 | UP78DC7978 | 101 |
| 111110 | 2017-06-22 | UP78DC7978 | 102 |
| 111489 | 2018-05-06 | UP78DE8040 | 103 |
| 111501 | 2018-07-21 | UP78DC7978 | 101 |
| 111513 | 2018-07-20 | UP78DE7011 | 106 |
| 111987 | 2019-07-29 | UP78BF1234 | 102 |
| 111990 | 2019-08-07 | UP78RZ1198 | 102 |
+------------+------------+------------+---------+

1. Display the dates of the first registration and last registration from the
table Vehicle.

SELECT MIN(REGDATE) AS first_registration, MAX(REGDATE) AS last_registration


FROM Vehicle;
+--------------------+-------------------+
| first_registration | last_registration |
+--------------------+-------------------+
| 2012-01-16 | 2016-12-23 |
+--------------------+-------------------+

2. Display the details of vehicle whose registration number is odd (consider


last 4 digits only).

SELECT * FROM Vehicle


WHERE MOD(RIGHT(REGNO, 4), 2) = 1;
+------------+------------+-----------------+------------------------------+
| REGNO | REGDATE | OWNER | ADDRESS |
+------------+------------+-----------------+------------------------------+
| UP78DE7011 | 2013-10-05 | SUPRIYA DWIVEDI | 123/420, ASHOK NAGAR, KANPUR |
+------------+------------+-----------------+------------------------------+

3. Display the registration number(S) of vehicle, whose owner resides in KANPUR.

SELECT REGNO FROM Vehicle


WHERE ADDRESS LIKE '%Kanpur%';
+------------+
| REGNO |
+------------+
| UP78DE7011 |
| UP78GT0332 |
| UP78RE1198 |
| UP78RZ1198 |
+------------+

4. Display the registration number(S) of vehicle, whose owners are SINGH.

SELECT REGNO FROM Vehicle


WHERE OWNER LIKE '%SINGH%';

28 | P a g e
+------------+
| REGNO |
+------------+
| UP78DX4548 |
| UP78GT0332 |
| UP78RZ1198 |
| UP78ZX0420 |
+------------+

5. Display the details of the vehicle(S), which were registered on a date where
MM is more than DD.

SELECT * FROM Vehicle


WHERE MONTH(REGDATE) > DAY(REGDATE);
+------------+------------+-----------------+------------------------------+
| REGNO | REGDATE | OWNER | ADDRESS |
+------------+------------+-----------------+------------------------------+
| UP78DE7011 | 2013-10-05 | SUPRIYA DWIVEDI | 123/420, ASHOK NAGAR, KANPUR |
| UP78RZ1198 | 2016-09-02 | JATIN SINGH | 11/34, SHANTI NAGAR, KANPUR |
+------------+------------+-----------------+------------------------------+

6. Display the number of challans issued on each date.

SELECT CH_DATE, COUNT(*) AS CHALLAN_COUNT FROM CHALLAN


GROUP BY CH_DATE;
+------------+---------------+
| CH_DATE | CHALLAN_COUNT |
+------------+---------------+
| 2017-03-02 | 2 |
| 2017-03-12 | 1 |
| 2017-04-13 | 2 |
| 2017-06-22 | 1 |
| 2018-05-06 | 1 |
| 2018-07-20 | 1 |
| 2018-07-21 | 1 |
| 2019-07-29 | 1 |
| 2019-08-07 | 1 |
+------------+---------------+

8. Display the month name (irrespective of the year) in which maximum challans
were recorded.

SELECT MONTHNAME(CH_DATE) AS month_name, COUNT(*) AS challan_count FROM CHALLAN


GROUP BY MONTHNAME(CH_DATE)
HAVING COUNT(*) = (SELECT MAX(challan_count)
FROM (SELECT MONTHNAME(CH_DATE) AS month_name, COUNT(*) AS challan_count FROM CHALLAN
GROUP BY MONTHNAME(CH_DATE)) AS monthly_counts);
+------------+---------------+
| month_name | challan_count |
+------------+---------------+
| July | 3 |
| March | 3 |
+------------+---------------+

29 | P a g e
9. Display the date on which maximum challans were recorded.

SELECT CH_DATE, COUNT(*) AS CHALLAN_COUNT FROM CHALLAN


GROUP BY CH_DATE HAVING COUNT(*) = (SELECT MAX(challan_count)
FROM (SELECT CH_DATE, COUNT(*) AS CHALLAN_COUNT
FROM CHALLAN GROUP BY CH_DATE) AS daily_counts);
+------------+---------------+
| CH_DATE | CHALLAN_COUNT |
+------------+---------------+
| 2017-03-02 | 2 |
| 2017-04-13 | 2 |
+------------+---------------+

11. Display the total number of vehicles registered after the year 2014.

SELECT COUNT(*) AS total_vehicles FROM VEHICLE WHERE YEAR(REGDATE) > 2014;


+----------------+
| total_vehicles |
+----------------+
| 4 |
+----------------+

12. Display the registration number of vehicles that have not received any
challan.

SELECT REGNO FROM VEHICLE WHERE REGNO NOT IN (SELECT REGNO FROM CHALLAN);
+------------+
| REGNO |
+------------+
| UP78GT0332 |
| UP78RE1198 |
| UP78ZX0420 |
+------------+

13. Display the details of vehicles whose registration number starts with
'UP78DE'

SELECT * FROM VEHICLE WHERE REGNO LIKE 'UP78DE%';


+------------+------------+-----------------+------------------------------+
| REGNO | REGDATE | OWNER | ADDRESS |
+------------+------------+-----------------+------------------------------+
| UP78DE7011 | 2013-10-05 | SUPRIYA DWIVEDI | 123/420, ASHOK NAGAR, KANPUR |
| UP78DE8040 | 2014-09-12 | JASNOOR KAUR | 41/85, GANGA GANJ, RAMPUR |
+------------+------------+-----------------+------------------------------+

14. Display the number of vehicles registered in each year.

SELECT YEAR(REGDATE) AS registration_year, COUNT(*) AS total_vehicles FROM VEHICLE


GROUP BY YEAR(REGDATE);
+-------------------+----------------+
| registration_year | total_vehicles |
+-------------------+----------------+
| 2012 | 1 |
| 2013 | 2 |
| 2014 | 2 |
| 2015 | 1 |
| 2016 | 3 |
+-------------------+----------------+

30 | P a g e
PANDAS DATAFRAME OPERATION 1

Q. Write suitable commands using the table given below.

+---------+---------+-------------+---------+----------+
| NAME | STIPEND | SUBJECT | AVERAGE | DIVISION |
+---------+---------+-------------+---------+----------+
| KARAN | 400 | PHYSICS | 68 | 1 |
| DIVAKAR | 450 | COMPUTER SC | 68 | 1 |
| DIVYA | 300 | CHEMISTRY | 62 | 2 |
| ARUN | 350 | PHYSICS | 63 | 1 |
| SABINA | 500 | MATHEMATICS | 70 | 1 |
| JOHN | 400 | CHEMISTRY | 55 | 2 |
| ROBERT | 250 | PHYSICS | 64 | 1 |
+---------+---------+-------------+---------+----------+

1. Make a dictionary of lists using above table and convert it into DataFrame.

import pandas as pd
data = {"NAME" : ["KARAN", "DIVAKAR", "DIVYA", "ARUN", "SABINA", "JOHN",
"ROBERT"],
"STIPEND" : [400, 450, 300, 350, 500, 400, 250],
"SUBJECT" : ["PHYSICS", "COMPUTER SC", "CHEMISTRY", "PHYSICS",
"MATHEMATICS", "CHEMISTRY", "PHYSICS"],
"AVERAGE" : [68, 68, 62, 63, 70, 55, 64],
"DIVISION" : [1, 1, 2, 1, 1, 2, 1]
}
df = pd.DataFrame(data)
print(df)

Output:
NAME STIPEND SUBJECT AVERAGE DIVISION
0 KARAN 400 PHYSICS 68 1
1 DIVAKAR 450 COMPUTER SC 68 1
2 DIVYA 300 CHEMISTRY 62 2
3 ARUN 350 PHYSICS 63 1
4 SABINA 500 MATHEMATICS 70 1
5 JOHN 400 CHEMISTRY 55 2
6 ROBERT 250 PHYSICS 64 1

2. Display the names of graduates whose stipend is divisible by 3.

print(df.loc[df.STIPEND % 3 == 0, ["NAME"]])

Output:
NAME
1 DIVAKAR
2 DIVYA

31 | P a g e
3. Display the second to fifth rows from the DataFrame.

print(df.loc[1:4])

Output:
NAME STIPEND SUBJECT AVERAGE DIVISION
1 DIVAKAR 450 COMPUTER SC 68 1
2 DIVYA 300 CHEMISTRY 62 2
3 ARUN 350 PHYSICS 63 1
4 SABINA 500 MATHEMATICS 70 1

4. Display all the names in the DataFrame.

print(df["NAME"])

Output:
0 KARAN
1 DIVAKAR
2 DIVYA
3 ARUN
4 SABINA
5 JOHN
6 ROBERT
Name: NAME, dtype: object

5. Display the name and subject of those students whose average is more than 65.

print(df.loc[df.AVERAGE> 65, ["NAME", "SUBJECT"]])

Output:
NAME SUBJECT
0 KARAN PHYSICS
1 DIVAKAR COMPUTER SC
4 SABINA MATHEMATICS

6. Display the details of those students whose stipend is 400, 300 or 500.

print(df.loc[df.STIPEND.isin([400, 300, 500])])

Output:
NAME STIPEND SUBJECT AVERAGE DIVISION
0 KARAN 400 PHYSICS 68 1
2 DIVYA 300 CHEMISTRY 62 2
4 SABINA 500 MATHEMATICS 70 1
5 JOHN 400 CHEMISTRY 55 2

32 | P a g e
7. Display the details of those students whose division is 1 and stipend is
either 400 or 500.

print(df.loc[(df.DIVISION == 1) & (df.STIPEND.isin([400, 500]))])

Output:
NAME STIPEND SUBJECT AVERAGE DIVISION
0 KARAN 400 PHYSICS 68 1
4 SABINA 500 MATHEMATICS 70 1

8. Display all the columns in the DataFramedf.

print(df.columns)

Output:
Index(['NAME', 'STIPEND', 'SUBJECT', 'AVERAGE', 'DIVISION'], dtype='object')

9. Display the types of data in each column of the DataFrame.

print(df.dtypes)

Output:
NAME object
STIPEND int64
SUBJECT object
AVERAGE int64
DIVISION int64
dtype: object

10. Display the topmost two records in the DataFrame.

print(df.head(2))

Output:
NAME STIPEND SUBJECT AVERAGE DIVISION
0 KARAN 400 PHYSICS 68 1
1 DIVAKAR 450 COMPUTER SC 68 1

11. Display the bottom five records in the DataFrame.

print(df.tail(5))
OR
print(df.tail())

Output:
NAME STIPEND SUBJECT AVERAGE DIVISION
2 DIVYA 300 CHEMISTRY 62 2
3 ARUN 350 PHYSICS 63 1
4 SABINA 500 MATHEMATICS 70 1
5 JOHN 400 CHEMISTRY 55 2
6 ROBERT 250 PHYSICS 64 1

33 | P a g e
12. Transpose the DataFramedf.

print(df.T)

Output:
0 1 2 3 4 5 6
NAME KARAN DIVAKAR DIVYA ARUN SABINA JOHN ROBERT
STIPEND 400 450 300 350 500 400 250
SUBJECT PHYSICS COMPUTER SC CHEMISTRY PHYSICS MATHEMATICS CHEMISTRY PHYSICS
AVERAGE 68 68 62 63 70 55 64
DIVISION 1 1 2 1 1 2 1

13. Display the shape and size of the DataFrame.

print(df.shape)

Output:
(7, 5)

print(df.size)

Output:
35

14. Display the maximum stipend of the DataFrame.

print(df.STIPEND.max())

Output:
500

15. Display the minimum stipend of the DataFrame.

print(df.STIPEND.min())

Output:
250

16. Add a new row in the DataFramedf using following data:


["ROMIL", 500, "ACCOUNTANCY", 92, 1]

df.loc[7] = ["ROMIL", 500, "ACCOUNTANCY", 92, 1]

Updated DataFrame will look like:


NAME STIPEND SUBJECT AVERAGE DIVISION
0 KARAN 400 PHYSICS 68 1
1 DIVAKAR 450 COMPUTER SC 68 1
2 DIVYA 300 CHEMISTRY 62 2
3 ARUN 350 PHYSICS 63 1
4 SABINA 500 MATHEMATICS 70 1
5 JOHN 400 CHEMISTRY 55 2

34 | P a g e
6 ROBERT 250 PHYSICS 64 1
7 ROMIL 500 ACCOUNTANCY 92 1

17. Add a new column Advisor in the DataFramedf using following data:
["VINOD", "ALOK", "RAJAN", "VINOD", "MAHESH", "RAJAN", "VINOD", "JUGAL"]

df["ADVISOR"] = ["VINOD", "ALOK", "RAJAN", "VINOD", "MAHESH", "RAJAN", "VINOD",


"JUGAL"]

Updated DataFrame will look like:


Output:
NAME STIPEND SUBJECT AVERAGE DIVISION ADVISOR
0 KARAN 400 PHYSICS 68 1 VINOD
1 DIVAKAR 450 COMPUTER SC 68 1 ALOK
2 DIVYA 300 CHEMISTRY 62 2 RAJAN
3 ARUN 350 PHYSICS 63 1 VINOD
4 SABINA 500 MATHEMATICS 70 1 MAHESH
5 JOHN 400 CHEMISTRY 55 2 RAJAN
6 ROBERT 250 PHYSICS 64 1 VINOD
7 ROMIL 500 ACCOUNTANCY 92 1 JUGAL

18. Display the names of those students whose advisor is Vinod.

print(df.loc[df.ADVISOR == "VINOD", ["NAME"]])

Output:
NAME
0 KARAN
3 ARUN
6 ROBERT

19. Name the advisor of Romil.

print(df.loc[df.NAME == "ROMIL", ["NAME", "Advisor"]])

Output:
NAME ADVISOR
7 ROMIL JUGAL

20. Export the Dataframe to a CSV file.

df.to_csv("E:/CLASS_12/PRACTICAL_FILE_2024-25")

35 | P a g e
PANDAS DATAFRAME OPERATION 2

Q1. Create the following Data Frame df

Name DOB Gender Mobile Height Weight


ADITYA PAL 01/12/2002 M 9876543210 5.8 55
PALAK AGARWAL 08/11/2002 F 9987654321 5.0 45
KULDEEP SINGH 12/02/2003 M 9998765432 5.3 48
NEHA 02/05/2003 F 9999765432 5.3 50
PRAVESH 03/05/2002 M 8885963212 5.5 54
SUMIT PACHORI 05/03/2001 M 8956664232 5.6 56
TANUSHKA 02/02/2002 F 9856472362 5.1 50

import pandas as pd
data = {"Name" : ["ADITYA PAL", "PALAK AGARWAL", "KULDEEP SINGH", "NEHA", "PRAVESH",
"SUMIT PACHORI", "TANUSHKA"],
"DOB" : ["01/12/2002" , "08/11/2002", "12/02/2003", "02/05/2003",
"03/05/2002", "05/03/2001", "02/02/2002"],
"Gender" : ["M", "F", "M", "F", "M", "M", "F"],
"Mobile" : [9876543210, 9987654321, 9998765432, 9999765432, 8885963212,
8956664232, 9856472362],
"Height" : [5.8, 5.0, 5.3, 5.3, 5.5, 5.6, 5.1 ],
"Weight" : [55, 45, 48, 50, 54, 56, 50]
}

df = pd.DataFrame(data)
print(df)

Name DOB Gender Mobile Height Weight


0 ADITYA PAL 01/12/2002 M 9876543210 5.8 55
1 PALAK AGARWAL 08/11/2002 F 9987654321 5.0 45
2 KULDEEP SINGH 12/02/2003 M 9998765432 5.3 48
3 NEHA 02/05/2003 F 9999765432 5.3 50
4 PRAVESH 03/05/2002 M 8885963212 5.5 54
5 SUMIT PACHORI 05/03/2001 M 8956664232 5.6 56
6 TANUSHKA 02/02/2002 F 9856472362 5.1 50

Q2. Write the result of following Statements based on above DataFrame


a. print(df.index)

RangeIndex(start=0, stop=7, step=1)

b. print(df.columns)

Index(['Name', 'DOB', 'Gender', 'Mobile', 'Height', 'Weight'], dtype='object')

c. print(df.ndim)

Q3. What the following statements are doing to DataFrame df?


a. df['city'] = ['Gwalior','Indore','Agra','Dewas','Gwalior','Indore']

The above statement will give an error because the given values are only 6
whereas dataframe have 7 rows.
36 | P a g e
b. df.Name[7] = ['NANDITA', '2020/01/01', 'F', 9998887776, 5.3, 51]

The above statement will give an error because to add an row it is needed to
write "df.loc" instead of "df.Name".

c. df.loc[2, : ]

The above statement will show all the details of that person who is at 3rd
position in the dataframe.

print(df.loc[2, : ])

Output:

Name KULDEEP SINGH


DOB 12/02/2003
Gender M
Mobile 9998765432
Height 5.3
Weight 48

d. df.loc[3:5, : ]

The above statement will show all the details of those person who are at 4th to
6th position in the dataframe.

print(df.loc[3:5, : ])

Output:

Name DOB Gender Mobile Height Weight


3 NEHA 02/05/2003 F 9999765432 5.3 50
4 PRAVESH 03/05/2002 M 8885963212 5.5 54
5 SUMIT PACHORI 05/03/2001 M 8956664232 5.6 56

e. df.loc[2:4, 'Name' : 'Gender']

The above statement will show all the rows of those person who are at 3rd to 5th
position in the dataframe and those columns who are between Name and Gender
including these columns.

print(df.loc[2:4, 'Name' : 'Gender'])

Output:

Name DOB Gender


2 KULDEEP SINGH 12/02/2003 M
3 NEHA 02/05/2003 F
4 PRAVESH 03/05/2002 M

37 | P a g e
Q4. Add One more Column 'FName' with suitable contents to the above Data Frame .

df["FName"] = ["Arun Pal", "Rakesh Agarwal", "Pawan Singh", "Mudit", "Karan",


"Manish Pachori", "Shivam"]

print(df)

Output:

Name DOB Gender Mobile Height Weight FName


0 ADITYA PAL 01/12/2002 M 9876543210 5.8 55 Arun Pal
1 PALAK AGARWAL 08/11/2002 F 9987654321 5.0 45 Rakesh Agarwal
2 KULDEEP SINGH 12/02/2003 M 9998765432 5.3 48 Pawan Singh
3 NEHA 02/05/2003 F 9999765432 5.3 50 Mudit
4 PRAVESH 03/05/2002 M 888596212 5.5 54 Karan
5 SUMIT PACHORI 05/03/2001 M 8956664232 5.6 56 Manish Pachori
6 TANUSHKA 02/02/2002 F 9856472362 5.1 50 Shivam

Q5. Identify the Output of the following commands.

(a)print(df.count(0))

Name 7
DOB 7
Gender 7
Mobile 7
Height 7
Weight 7
FName 7

(b)print(df.count(1))

0 7
1 7
2 7
3 7
4 7
5 7
6 7

(c)print(df.T)

0 1 2 3 4 5 6
Name ADITYA PAL PALAK AGARWAL KULDEEP SINGH NEHA PRAVESH SUMIT PACHORI TANUSHKA
DOB 01/12/2002 08/11/2002 12/02/2003 02/05/2003 03/05/2002 05/03/2001 02/02/2002
Gender M F M F M M F
Mobile 9876543210 9987654321 9998765432 9999765432 8885963212 8956664232 9856472362
Height 5.8 5.0 5.3 5.3 5.5 5.6 5.1
Weight 55 45 48 50 54 56 50
FName Arun Pal Rakesh Agarwal Pawan Singh Mudit Karan Manish Pachori Shivam

(d)print(df1.idxmax())

It will show error as dataframe named df1 doesn't exist.

38 | P a g e
PANDAS DATAFRAME OPERATION 3

Q1. Create the following dictionary & name it 'cars_dict'.

import pandas as pd
cars_dict = {"COMPANY" : ["BMW", "DZIRE", "NANO", "I20", "SENTRO"],
"COLOR" : ["RED", "GREEN", "RED", "GREEN", "GREEN"],
"COUNT" : [3, 9, 25, 26, 99],
"MODEL" : [ 120, 100, 125, 150, 70]
}

2.Create a DataFrame named cars, using the Dictionary car_dict created above,
with indexes
[‘C1’, ‘C2’, ‘C3’, ‘C4’, ‘C5’] also display it.

cars = pd.DataFrame(cars_dict, index = ['C1', 'C2', 'C3', 'C4', 'C5'])


print(cars);

output:
COMPANY COLOR COUNT MODEL
C1 BMW RED 3 120
C2 DZIRE GREEN 9 100
C3 NANO RED 25 125
C4 I20 GREEN 26 150
C5 SENTRO GREEN 99 70

3) Find maximum COUNT from DataFrame cars.

print(cars.COUNT.max())

99

4) List Cars with COUNT more than 25.

print(cars.loc(car.COUNT > 25))

output:
COMPANY COLOR COUNT MODEL
C4 I20 GREEN 26 150
C5 SENTRO GREEN 99 70

5) List COMPANY of all cars whose MODEL is between 110 to 150

print(cars.loc[(cars.MODEL > 110) & (cars.MODEL < 150), ["COMPANY"]])

output:
COMPANY
C1 BMW
C3 NANO

39 | P a g e
6) Display COMPANY of all the GREEN color cars having COUNT > 10.

print(cars.loc[(cars.COLOR == "GREEN") & (cars.COUNT >10), ["COMPANY"]])

output:
COMPANY
C4 I20
C5 SENTRO

7) Name the COMPANY having odd number of COUNT.

print(cars.loc[cars.COUNT % 2 == 1, ["COMPANY"]])

output:
COMPANY
C1 BMW
C2 DZIRE
C3 NANO
C5 SENTRO

8) Insert a row after SENTRO with index ‘C6’ and data as given in the list:
[ 'BALENO', 'RED', 65, 23 ]

cars.loc["C6" = ['BALENO', 'RED', 65, 23]]

9) Delete the column named MODEL from the DataFrame cars

cars = cars.drop("MODEL", axis = 1)

10) Create a new Dataframe named Green_car, by copying all the rows from
the DataFrame cars, where value of COLOR column is GREEN.

df1 = cars.loc[cars.COLOR == "GREEN"]


df2 = pd.DataFrame(df1)
print(df2)

output:
COMPANY COLOR COUNT MODEL
C2 DZIRE GREEN 9 100
C4 I20 GREEN 26 150
C5 SENTRO GREEN 99 70

40 | P a g e
PANDAS DATAFRAME OPERATION 4

import pandas as pd

+------+---------+------+------------+------------+-------+------+------+
| CID | CNAME | AGE | SPORTS | DOJ | PAY | GEN | NOP |
+------+---------+------+------------+------------+-------+------+------+
| 1 | KUKREJA | 35 | KARATE | 2012-03-27 | 10000 | M | 20 |
| 2 | RAVINA | 34 | KARATE | 2008-01-20 | 12000 | F | 15 |
| 3 | KARAN | 34 | SQUASH | 2009-02-19 | 20000 | M | 2 |
| 4 | TARUN | 33 | BASKETBALL | 2012-01-01 | 15000 | M | 16 |
| 5 | ZUBIN | 36 | SWIMMING | 2008-01-12 | 7000 | M | 10 |
+------+---------+------+------------+------------+-------+------+------+

Create a dataframe
club = {"CNAME" : ["Kukreja", "Ravina", "Karan", "Tarun", "Zubin"],
"AGE" : [35, 34, 34, 33,36],
"SPORTS" : ["KARATE","KARATE", "SQUASH", "BASKETBALL", "SWIMMING"],
"DOJ" : ["2012-03-27","2008-01-20","2009-02-19","2012-01-01","2008-01-
12"],
"PAY" : [10000,12000,20000,15000,7000],
"GEN" : ["M","F","M","M","M"],
"NOP" : [20,15,2,16,10]
}

df = pd.DataFrame(club)
print(df)

CNAME AGE SPORTS DOJ PAY GEN NOP


0 Kukreja 35 KARATE 2012-03-27 10000 M 20
1 Ravina 34 KARATE 2008-01-20 12000 F 15
2 Karan 34 SQUASH 2009-02-19 20000 M 2
3 Tarun 33 BASKETBALL 2012-01-01 15000 M 16
4 Zubin 36 SWIMMING 2008-01-12 7000 M 10

1.Add a column "Location" to the dataframe club with values "India" for all.

df["location"] = 'India'

CNAME AGE SPORTS DOJ PAY GEN NOP location


0 Kukreja 35 KARATE 2012-03-27 10000 M 20 India
1 Ravina 34 KARATE 2008-01-20 12000 F 15 India
2 Karan 34 SQUASH 2009-02-19 20000 M 2 India
3 Tarun 33 BASKETBALL 2012-01-01 15000 M 16 India
4 Zubin 36 SWIMMING 2008-01-12 7000 M 10 India

41 | P a g e
2.Increase the pay of Karan by 4000.
df.loc[df.CNAME == "Karan","PAY"] += 4000

CNAME AGE SPORTS DOJ PAY GEN NOP location


0 Kukreja 35 KARATE 2012-03-27 10000 M 20 India
1 Ravina 34 KARATE 2008-01-20 12000 F 15 India
2 Karan 34 SQUASH 2009-02-19 24000 M 2 India
3 Tarun 33 BASKETBALL 2012-01-01 15000 M 16 India
4 Zubin 36 SWIMMING 2008-01-12 7000 M 10 India

3.Display coachname,age & pay whose age is more than 35.


print(df.loc[df.AGE > 17 , ["AGE","CNAME"]])

AGE CNAME
0 35 Kukreja
1 34 Ravina
2 34 Karan
3 33 Tarun
4 36 Zubin

4.Delete a column named location.


del df["location"]

CNAME AGE SPORTS DOJ PAY GEN NOP


0 Kukreja 35 KARATE 2012-03-27 10000 M 20
1 Ravina 34 KARATE 2008-01-20 12000 F 15
2 Karan 34 SQUASH 2009-02-19 20000 M 2
3 Tarun 33 BASKETBALL 2012-01-01 15000 M 16
4 Zubin 36 SWIMMING 2008-01-12 7000 M 10

5.To show female coaches with pay > 1000.


df.loc[(df["GEN"] == "F") & (df["PAY"] > 10000)]
output:

CNAME AGE SPORTS DOJ PAY GEN NOP


1 Ravina 34 KARATE 2008-01-20 12000 F 15

6.To display the maximum age.


df["AGE"].max()

36

7.Display only sports column.


print(df["SPORTS"])

output:
0 KARATE
1 KARATE
2 SQUASH
3 BASKETBALL
4 SWIMMING

42 | P a g e
8.Display the total pay of the table club.
df["PAY"].sum()

64000

9.To add nop by 5.


df["NOP"] = df["NOP"] + 5

output:

CNAME AGE SPORTS DOJ PAY GEN NOP


0 Kukreja 35 KARATE 2012-03-27 10000 M 25
1 Ravina 34 KARATE 2008-01-20 12000 F 20
2 Karan 34 SQUASH 2009-02-19 20000 M 7
3 Tarun 33 BASKETBALL 2012-01-01 15000 M 21
4 Zubin 36 SWIMMING 2008-01-12 7000 M 15

10.To display only cname and pay.

df.loc[:,["CNAME","PAY"]]

output:

CNAME PAY
0 Kukreja 10000
1 Ravina 12000
2 Karan 20000
3 Tarun 15000
4 Zubin 7000

43 | P a g e
PANDAS DATAFRAME OPERATION 5

1. Create a Dictionary of above data (Age, Phy, Chem, Math) & name it SecA.
import pandas as pd

SecA = {'Age':[17,19,17,18,16],
'Phy':[67.5,77,56.5,39,78],
'Chem':[77,72.5,69.5,46,49],
'Math':[98,65.5,53.5,91,73.5]
}

{'Age': [17, 19, 17, 18, 16], 'Phy': [67.5, 77, 56.5, 39, 78], 'Chem': [77, 72.5, 69.5,
46, 49], 'Math': [98, 65.5, 53.5, 91, 73.5]}

2. Create a DataFrame named marks, using dictionary SecA with index (Tom, James,
Ricky, Vin, Steve).

marks = pd.DataFrame(SecA, index =['Tom', 'James', 'Ricky', 'Vin', 'Steve'])

output:
Age Phy Chem Math
Tom 17 67.5 77.0 98.0
James 19 77.0 72.5 65.5
Ricky 17 56.5 69.5 53.5
Vin 18 39.0 46.0 91.0
Steve 16 78.0 49.0 73.5

3. Add a column Total, to dataFrame marks with values 0 for all.

marks['Total'] = 0

output ::
Age Phy Chem Math Total
Tom 17 67.5 77.0 98.0 0
James 19 77.0 72.5 65.5 0
Ricky 17 56.5 69.5 53.5 0
Vin 18 39.0 46.0 91.0 0
Steve 16 78.0 49.0 73.5 0

4. Increase the marks of Vin in Chem by 8.

marks.loc['Vin','Chem']+= 8

output:
Age Phy Chem Math Total
Tom 17 67.5 77.0 98.0 0
James 19 77.0 72.5 65.5 0
Ricky 17 56.5 69.5 53.5 0
Vin 18 39.0 54.0 91.0 0
Steve 16 78.0 49.0 73.5 0

44 | P a g e
5. Update the column Total, with the sum of marks of all 3 subjects.

marks['Total'] = marks['Phy'] + marks['Chem'] + marks['Math']

output:
Age Phy Chem Math Total
Tom 17 67.5 77.0 98.0 242.5
James 19 77.0 72.5 65.5 215.0
Ricky 17 56.5 69.5 53.5 179.5
Vin 18 39.0 54.0 91.0 184.0
Steve 16 78.0 49.0 73.5 200.5

6. Display the Total of Ricky only.

print(marks.Total['Ricky']) or print(marks.loc['Ricky','Total'])

179.5

7. Display all the columns of Tom only

print(marks.loc['Tom']) or print(marks.loc[['Tom']])

Output:

Age Phy Chem Math Total


Tom 17 67.5 77.0 98.0 242.5

8. Display Name, Age and Total of all students.

print(marks[['Age', 'Total']])

output:

Age Total
Tom 17 242.5
James 19 215.0
Ricky 17 179.5
Vin 18 184.0
Steve 16 200.5

9. Display Name, Age & Total of students, whose Age is more than 17 years.

print(marks.loc[marks.Age>17, ['Age', 'Total']])

output:

Age Total
James 19215.0
Vin 18 184.0

45 | P a g e
10. Display details of all students getting 1st division in Phy& Math.

print(marks.loc[(marks.Phy>= 70) & (marks.Math>= 70)])

output:

Age Phy Chem Math Total


Steve 1678.0 49.0 73.5 200.5

11. Delete the column named Age.

del marks['Age']

output:

Phy Chem Math Total


Tom 67.5 77.0 98.0 242.5
James 77.0 72.5 65.5 215.0
Ricky 56.5 69.5 53.5 179.5
Vin 39.0 54.0 91.0 184.0
Steve 78.0 49.0 73.5 200.5

12. Display the details of students who scored more than 80 marks in any
subject.
print(marks.loc[(marks['Phy'] > 80) | (marks['Chem'] > 80) | (marks['Math'] >
80)])

output:

Phy Chem Math Total


Tom 67.5 77.0 98.0 242.5
Vin 39.0 54.0 91.0 184.0

13. Find the percentage of each student and add a column.

marks['Percentage'] = (marks['Total'] / 300) * 100

output:

Phy Chem Math Total Percentage


Tom 67.5 77.0 98.0 242.5 80.833333
James 77.0 72.5 65.5 215.0 71.666667
Ricky 56.5 69.5 53.5 179.5 59.833333
Vin 39.0 54.0 91.0 184.0 61.333333
Steve 78.0 49.0 73.5 200.5 66.833333

14. Display the details of students who passed in all subjects (above 33 in all
subjects).

passed_students = marks.loc[(marks['Phy'] > 33) & (marks['Chem'] > 33) &


(marks['Math'] > 33)]

print(passed_students)
46 | P a g e
output:

Phy Chem Math Total Percentage


Tom 67.5 77.0 98.0 242.5 80.833333
James 77.0 72.5 65.5 215.0 71.666667
Ricky 56.5 69.5 53.5 179.5 59.833333
Vin 39.0 54.0 91.0 184.0 61.333333
Steve 78.0 49.0 73.5 200.5 66.833333

15. Add a column Grade based on the percentage:

• 90% and above: A+


• 80%-89%: A
• 70%-79%: B
• 60%-69%: C
• Below 60%: D

marks['Grade'] = ''
marks.loc[marks['Percentage'] >= 90, 'Grade'] = 'A+'
marks.loc[(marks['Percentage'] >= 80) & (marks['Percentage'] < 90), 'Grade'] =
'A'
marks.loc[(marks['Percentage'] >= 70) & (marks['Percentage'] < 80), 'Grade'] =
'B'
marks.loc[(marks['Percentage'] >= 60) & (marks['Percentage'] < 70), 'Grade'] =
'C'
marks.loc[marks['Percentage'] < 60, 'Grade'] = 'D'
print(marks)

output:

Phy Chem Math Total Percentage Grade


Tom 67.5 77.0 98.0 242.5 80.833333 A
James 77.0 72.5 65.5 215.0 71.666667 B
Ricky 56.5 69.5 53.5 179.5 59.833333 D
Vin 39.0 54.0 91.0 184.0 61.333333 C
Steve 78.0 49.0 73.5 200.5 66.833333 C

47 | P a g e
PANDAS DATAFRAME OPERATION 6

Q1. If a List L contains the following elements :


L = ['a', 'e', 'i', 'o', 'u']
Write a Python program to create a Series named SL using the above list.

SL = pd.Series(L)
print(SL)
0 a
1 e
2 i
3 o
4 u
dtype: object

Q2. A dictionary D contains the following data :


D = { 'P':16, 'Q':17, 'R':18, 'S':19 }
Write a Python program to create a Series named SD using the above dictionary.

D = { 'P':16, 'Q':17, 'R':18, 'S':19 }


SD = pd.Series(D)
print(SD)
P 16
Q 17
R 18
S 19
dtype: int64

Q3. Explain the usage of head() and tail() function in DataFrame.

head() : It displays the first n members of the DataFrame. If the values for n is not
passed, then by default n takes 5 and the first five members are displayed.
tail() : It displays the last n members of the DataFrame. If the values for n is not
passed, then by default n takes 5 and the last five members are displayed.

Q4. A dictionary called StdX which contains the following data:

+-------------+---------+------------+
| Name | TMarks | City |
+-------------+---------+------------+
| Amit Kumar | 450 | New Delhi |
| Asha Goel | 426 | Bengaluru |
| Kavita | 476 | Chennai |
| Riya | 446 | Jaipur |
| Piyush | 464 | Mumbai |
+-------------+---------+------------+

Based on the above data, answer the following questions.


(Assume that pandas has been imported as pd)

48 | P a g e
(a) Write a Python statement to create a Data Frame df by using the Dictionary
StdX.

StdX = {"Name" : ["Amit Kumar", "Asha Goel", "Kavita", "Riya", "Piyush"],


"TMarks" : [450, 426, 476, 446, 464],
"City" : ["New Delhi", "Benaluru", "Chennai", "Jaipur", "Mumbai"]
}
df = pd.DataFrame(StdX)

(b) Print the DataFrame df.

print(df)
Name TMarks City
0 Amit Kumar 450 New Delhi
1 Asha Goel 426 Benaluru
2 Kavita 476 Chennai
3 Riya 446 Jaipur
4 Piyush 464 Mumbai

(c) Print the Columns as City, Name, TMarks.

df["City", "Name", "TMarks"]

(d) Print first three rows of the DataFrame df.

print(df.head(3))

Name TMarks City


0 Amit Kumar 450 New Delhi
1 Asha Goel 426 Benaluru
2 Kavita 476 Chennai

(e) Print last two rows of the DataFrame df.

print(df.tail(2))

Name TMarks City


3 Riya 446 Jaipur
4 Piyush 464 Mumbai

(f) Print the total number of records in the DataFrame df.

print(df.count())

Name 5
TMarks 5
City 5
dtype: int64

(g) Add to df , the following 2 rows with the given data:


Ishan, 435, New Delhi
Amrita, 432, Kolkata

49 | P a g e
data2 = {"Name" : ["Ishan", "Amrita"],
"TMarks" : [435, 432],
"City" : ["New Delhi", "Kolkata"]}
df1 = pd.DataFrame(data2)
df = df.append(df1, ignore_index = "True")

(h) Add to df , a new column called Age, with the following data:
[12, 15, 16, 13, 14, 15, 13]

df["Age"] = [12, 15, 16, 13, 14, 15, 13]

(i) Drop the column ‘City’ from df.

df = df.drop("City", axis = 1)

(j) Drop the 3rd row from df.

df = df.drop(3, axis = 0)

(k) Find the output of df.iloc[0:3]

df.iloc[0:3]
Name TMarks City
0 Amit Kumar 450 New Delhi
1 Asha Goel 426 Benaluru
2 Kavita 476 Chennai

Q6. Name the pandas functions/methods that iss used to load a csv file to
pandas.

read_csv

50 | P a g e
PANDAS DATAFRAME OPERATION 7

Write suitable python statement for the following .

Q1. Make a DataFrame using the DataFrame given above.

import pandas as pd
Year1 = {"Q1" : 5000, "Q2" : 8000, "Q3" : 12000, "Q4" : 18000 }
Year2 = {"A" : 13000, "B" : 14000, "C" : 12000 }
totSales = {1 : Year1, 2 : Year2}
df = pd.DataFrame(totSales)
print(df)

1 2
Q1 5000.0 NaN
Q2 8000.0 NaN
Q3 12000.0 NaN
Q4 18000.0 NaN
A NaN 13000.0
B NaN 14000.0
C NaN 12000.0

Q2. List the index of the DataFrame df.

print(df.index)

Index(['Q1', 'Q2', 'Q3', 'Q4', 'A', 'B', 'C'], dtype='object')

Q3. List the colummns of the DataFrame df.

print(df.columns)

Int64Index([1, 2], dtype='int64')

Q4. Count the total number of records in the 1st column.

print(df[1].count())

51 | P a g e
PANDAS DATAFRAME OPERATION 8

Write suitable python statement for the following .


Q1. Make a dictionary of lists using the DataFrame given above.

import pandas as pd
data = {"Name" : ["Nancy Drew", "Hardy Boys", "Diary of a wimpy kid",
"Harry Potter"],
"Price" : [150, 180, 225, 500]}

Q2. Make a DataFrame using the dictionary of lists given above.

df1 = pd.DataFrame(data)
print(df1)

Name Price
0 Nancy Drew 150
1 Hardy Boys 180
2 Diary of a wimpy kid 225
3 Harry Potter 500

Q3. Add a column called Special_Price with the following data :


[135, 150, 200, 440]

df1["Special_Price"] = [135, 150, 200, 440]


Updated DataFrame will look like
Name Price Special_Price
0 Nancy Drew 150 135
1 Hardy Boys 180 150
2 Diary of a wimpy kid 225 200
3 Harry Potter 500 440

Q4. Add a new book named "The Secret" having price 800.

df1.loc["4"] = ["The Secret", 800, None]

Name Price Special_Price


0 Nancy Drew 150 135
1 Hardy Boys 180 150
2 Diary of a wimpy kid 225 200
3 Harry Potter 500 440
4 The Secret 800 None

Q5. Remove the column "Special_Price".

df1 = df1.drop("Special_Price", axis = 1)

Name Price
0 Nancy Drew 150
1 Hardy Boys 180
2 Diary of a wimpy kid 225
3 Harry Potter 500
4 The Secret 800
52 | P a g e
PANDAS DATAFRAME OPERATION 9

Write suitable python statement for the following .

Q1. Make a list of lists using the DataFrame given above.

import pandas as pd
data = [["PPS", 40, 32, 8],
["JPS", 30, 18, 12],
["GPS", 20, 18, 2],
["MPS", 18, 10, 8],
["BPS", 28, 20, 8]]

Q2. Make a DataFrame using the list of lists given above.

df3 = pd.DataFrame(data, columns = ["School", "Tot_students", "Topper",


"First_Runnerup"], index = ["CO1", "CO2", "CO3", "CO4", "CO5"])
print(df3)

School Tot_students Topper First_Runnerup


CO1 PPS 40 32 8
CO2 JPS 30 18 12
CO3 GPS 20 18 2
CO4 MPS 18 10 8
CO5 BPS 28 20 8

Q3. Predict the output of the following python statement:

(a) df3.shape

(5, 4)

(b) df3[2:4]

School Tot_students Topper First_Runnerup


CO3 GPS 20 18 2
CO4 MPS 18 10 8

Q4. Write the python statement to display the data of Topper column of indexes
CO2 to CO4.

print(df3.loc["CO2" : "CO5", ["Topper"]])

Topper
CO2 18
CO3 18
CO4 10
CO5 20

Q5. Write the python statement to compute and display the difference of data of
Tot_students column and First_Runnerup column of the above given DataFrame.

print(df3.loc[df.Tot_students - df.First_Runnerup])
53 | P a g e
PANDAS DATAFRAME OPERATION 10

Create the DataFrame Sales containing year wise sales figures for five sales
persons in INR.
Use the years as column labels and sales person names as row labels.

2014 2015 2016 2017


Madhu 100.5 12000 20000 50000
Kusum 150.8 18000 50000 60000
Kinshuk 200.9 22000 70000 70000
Ankit 30000.0 30000 100000 80000
Shruti 40000.0 45000 125000 90000

import pandas as pd
D = { 2014 : [100.5,150.8,200.9,30000,40000],
2015 : [12000,18000,22000,30000,45000],
2016 : [20000,50000,70000,100000,125000],
2017 : [50000,60000, 70000, 80000, 90000]
}
Sales= pd.DataFrame(D, index = ['Madhu', 'Kusum', 'Kinshuk', 'Ankit',
'Shruti'])
print(Sales)

2014 2015 2016 2017


Madhu 100.5 12000 20000 50000
Kusum 150.8 18000 50000 60000
Kinshuk 200.9 22000 70000 70000
Ankit 30000.0 30000 100000 80000
Shruti 40000.0 45000 125000 90000

a) Display the last two rows of Sales

print(sales.tail(2))

b) Display the first two columns of Sales

print(sales.iloc[:,:2])

c) Create a dictionary using the following data. Use this dictionary to create a
DataFrame Sales2.

import pandas as pd
D = {2018:[160000,110000,500000,340000,900000]}
Sales2 = pd.DataFrame(D, index = ['madhu', 'kusum', 'kinshuk', 'ankit',
'shruti'])
print(Sales)
2014 2015 2016 2017
Madhu 100.5 12000 20000 50000
Kusum 150.8 18000 50000 60000
Kinshuk 200.9 22000 70000 70000
Ankit 30000.0 30000 100000 80000
Shruti 40000.0 45000 125000 90000

54 | P a g e
(d) Display the row labels of Sales

sales.index

e) Display the column labels of Sales

sales.columns

f) Display the data types of each column of Sales

sales.dtypes

g) Display the dimensions, shape, size and values of Sales


we can use shape, size and values attributes of dataframe to display dimension,
size and values as given below:

Print(“Dimension,size and values of Sales”, Sales.shape, sales.size,


sales.values)

55 | P a g e
PANDAS sERIES OPERATIONS

Create the following Series and do the specified operations:

a) Anaglyph, having 26 elements with the alphabets as values and default index
values.

import pandas as pd
Anaglyph = pd.Series(chr(i) for i in range(97,123))
print(Anaglyph)
0 a
1 b
2 c
3 d
4 e
5 f
6 g
7 h
8 i
9 j
10 k
11 l
12 m
13 n
14 o
15 p
16 q
17 r
18 s
19 t
20 u
21 v
22 w
23 x
24 y
25 z
dtype: object

b) Vowels, having 5 elements with index labels ‘a’, ‘e’, ‘i’, ‘o’ and ‘u’ and
all the five values set to zero.
import pandas as pd
Vowels = pd.Series( 0, ["a ", "e ", "i ", "o ", "u "])
print(Vowels)

a 0
e 0
i 0
o 0
u 0
dtype: int64

c) Friends, from a dictionary having roll numbers of 5 of your friends as data &
their 1st name as keys.
import pandas as pd
Friends = pd.Series({"ram ":1, "hari ":2,"raheem ":3, "kabir ":4, "rasool":5})
print(Friends)

ram 1
hari 2
raheem 3
kabir 4
rasool 5
dtype: int64

56 | P a g e
d) MT series, an empty Series. Check if it is an empty series.

import pandas as pd
MT = pd.Series()

Series([], dtype: float64)

e) MonthDays, from a numpy array having the number of days in the 12 months of a year. The labels
should be the month numbers from 1 to 12.

import pandas as pd
import Numpy as np
MonthDays = pd.Series(np.array([31,28,31,30,31,30,31,31,30,31,30,31]),range(1,13))
print(MonthDays)

1 31
2 28
3 31
4 30
5 31
6 30
7 31
8 31
9 30
10 31
11 30
12 31
dtype: int32

a) Set all the values of Vowels to 10 and display the Series.

Vowels[:] = 10 print(Vowels)
a 10
e 10
i 10
o 10
u 10
dtype: int64

b) Divide all values of Vowels by 2 and display the Series.

Vowels = Vowels/2 print(Vowels)


a 5.0
e 5.0
i 5.0
o 5.0
u 5.0
dtype: float64

c) Create another series Vowels1 having 5 elements with index labels


['a','e','i','o','u'] having values [2,5,6,3,8] respectively.

import pandas as pd
Vowels1 = pd.Series([2,5,6,3,8],['a','e','i','o','u'])
print(Vowels1)

57 | P a g e
a 2
e 5
i 6
o 3
u 8
dtype: int64

d) Add Vowels and Vowels1 and assign the result to Vowels3.

import pandas as pd
Vowels = pd.Series(0,['a','e','i','o','u'])
Vowels1 = pd.Series([2,5,6,3,8],['a','e','i','o','u'])
Vowels3 = Vowels + Vowels1

e) Subtract, Multiply and Divide Vowels by Vowels1.

print(Vowels1 – Vowels)
a 2
e 5
i 6
o 3
u 8
dtype: int64

print(Vowels1 *Vowels)
a 0
e 0
i 0
o 0
u 0
dtype: int64

print(Vowels/ Vowels1)
a 0.0
e 0.0
i 0.0
o 0.0
u 0.0
dtype: float64

f) Alter the labels of Vowels1 to ['A', 'E', 'I', 'O', 'U'].

Vowels1.index = ['A', 'E', 'I', 'O', 'U']


print(Vowels1)
A 2
E 5
I 6
O 3
U 8
dtype: int64

58 | P a g e
Matplotlib Bargraph 1

Q. Make a bar chart using matplotlib showing temperatures of 3 cities in a week.

import matplotlib.pyplot as plt


import pandas as pd

data = {"Mumbai" : [28, 30, 33, 34, 27, 26, 29],


"London" : [26, 22, 23, 22, 27, 26, 26],
"Paris" : [28, 29, 27, 25, 22, 24, 26],
"Day" : ["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]
}
df = pd.DataFrame(data)
df.plot(kind = "bar", x = "Day", color = ["cyan", "yellow", "red"],
linestyle = "--", linewidth = 1, edgecolor = "magenta")
plt.title("Temperature in 3 Cities Around the World.")
plt.xlabel("Weekdays")
plt.ylabel("Temperature")
plt.legend(["Mumbai", "London", "Paris"], loc = "upper right")
plt.show()

59 | P a g e
Matplotlib Bargraph 2

Q. Make a bar chart using matplotlib showing temperatures in a week.

import matplotlib.pyplot as plt


temp = [28, 30, 33, 34, 27, 26, 29]
week = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
plt.bar(week, temp, color = "yellow", linestyle = "--", linewidth = 1, edgecolor = "magenta")
plt.title("Temperature in a Week.")
plt.xlabel("Weekdays")
plt.ylabel("Temperature")
plt.show()

60 | P a g e
Matplotlib Bargraph 3

Q. Make a bar chart using matplotlib showing temperatures during Morning and Evening in a week.

import matplotlib.pyplot as plt


import pandas as pd

data = {"Morning" : [28, 30, 33, 34, 27, 26, 29],


"Evening" : [30, 33, 36, 34, 32, 30, 30],
"Day" : ["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]
}
df = pd.DataFrame(data)
df.plot(kind = "bar", x = "Day", color = [ "cyan", "yellow"],
linestyle = "--", linewidth = 1, edgecolor = "magenta")
plt.title("Temperature during Morning and Evening in a Week.")
plt.xlabel("Weekdays")
plt.ylabel("Temperature")
plt.legend(["Morning", "Evening"], loc = "upper left")
plt.show()

61 | P a g e
Matplotlib Linechart 1

Q. Plot a line chart using matplotlib showing Score of a Indian Team.

import matplotlib.pyplot as plt


runs = [20, 12, 18, 5, 14, 3, 13, 9, 16, 25]
overs = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
plt.plot(overs, runs)
plt.xlabel("Overs")
plt.ylabel("Runs")
plt.title("Score of an Indian Team")
plt.xticks(overs)
plt.show()

62 | P a g e
Matplotlib Linechart 1

Q. Plot a line chart using matplotlib showing Score of a Cricket Match.

import matplotlib.pyplot as plt


runs1 = [20, 12, 18, 5, 14, 3, 13, 9, 16, 25]
runs2 = [4, 8, 10, 2, 1, 9, 5, 5, 3, 7]
overs = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
plt.plot(overs, runs1, color = "red")
plt.plot(overs, runs2, color = "cyan")
plt.xlabel("Overs")
plt.ylabel("Runs")
plt.title("Score of a Cricket Match")
plt.xticks(overs)
plt.legend(["India", "Pakistan"], loc = "upper left")
plt.show()

63 | P a g e
Matplotlib Linechart 3

Q. Plot a line chart using matplotlib showing the fall of wickets of both the Teams.

import matplotlib.pyplot as plt


wick1 = [1, 2, 3]
overs1 = [3, 7.4, 9.3]
wick2 = [1, 2, 3, 4, 5, 6, 7, 8 , 9, 10]
overs2 = [1.2, 3.2, 3.5, 3.8, 5.1, 7.2, 8.1, 9.1, 9.5, 9.6]
plt.plot(wick1, overs1, color = "red", linestyle = "--")
plt.plot(wick2, overs2, color = "cyan", linestyle = "--")
plt.scatter(wick1, overs1, color = "blue", marker = "*")
plt.scatter(wick2, overs2, color = "green", marker = "*")
plt.xlabel("Wickets")
plt.ylabel("Overs")
plt.title("Cricket Match : India VS Pakistan")
plt.legend(["India", "Pakistan"], loc = "upper left")
plt.show()

64 | P a g e

You might also like