[1]
Write a program to generate a series of float numbers from 41.0 to
60.0 with an increment of 2.5 each.
Solution:
import pandas as pd
import numpy as np
def fl_ser():
n = np.arange(41,60,2.5)
s = pd.Series(n)
print(s)
fl_ser()
The Output is:
[2] Write a program to generate a series of 10 numbers with a scalar
value of 44.
Solution:
import pandas as pd
def fl_scv():
print(pd.Series(44,range(1,11)))
fl_scv()
[3] Create a panda’s series from a dictionary of values and a ndarray.
Solution:
import pandas as pd
import numpy as np
def pro3():
#Creating series from a dictionary
d={'Jan':31,'Feb':28,'Mar':31,'Apr':30}
s=pd.Series(d)
print("Series from dictionary")
print("~~~~~~~~~~~~~~~~~~~~~~~")
print(s)
#Creating series from an ndarray
ar=np.array([2,3,4,5,6])
print("\nSeries from ndarray")
print("~~~~~~~~~~~~~~~~~~~~~~~")
s1=pd.Series(ar)
print(s1)
pro3()
[4] Given a Series, print all the elements that are above the 75th
percentile.
Solution:
import pandas as pd
def Ser_stumarks():
std_marks = []
for i in range(1,6):
m = int(input("Enter the Percentile:"))
std_marks.append(m)
s = pd.Series(index=range(1201,1206),data=std_marks)
print("Data fetched from the series are:")
print(s[s>=75])
Ser_stumarks()
[5] Create a data frame for examination results and
display row labels, column labels data types of each
column and the dimensions.
Solution:
import pandas as pd
def df_std_res():
res={'Amit':[76,78,75,66,68],
'Shialesh':[78,56,77,49,55],
'Rani':[90,91,93,97,99],
'Madan':[55,48,59,60,66],
'Radhika':[78,79,85,88,86]}
df=pd.DataFrame(res)
print("Prinitng row labels in a list:")
print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
idx=df.index
l=list(idx)
print(l)
print("Prinitng row labels in a list:")
print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
print("[",end=" ")
for col in df.columns:
print(col,end=" ")
print("]")
print("Printing Data Types of each column")
print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
print(df.dtypes)
print("Printing dimensions of Data Frame")
print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
print(df.ndim)
df_std_res()
[6] Create a dataframe and iterate them over rows.
Solution:
import pandas as pd
data = [["Virat",55,66,31],["Rohit",88,66,43],[
"Hardik",99,101,68]]
players = pd.DataFrame(data,
columns = ["Name","Match-1","Match-2","Match-3"])
print("Iterating by rows:")
print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
for index, row in players.iterrows():
print(index, row.values)
print("Iterating by columns:")
print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
for index, row in players.iterrows():
print(index, row["Name"],row["Match-1"],
row["Match-2"],row["Match-3"])
[7] Create a dataframe and print it along with their index
using iteritems().
import pandas as pd
def df_operations():
sc_4yrs={2016:{'Virat Kohli':2595,'Rohit Sharma':2406,'Shikhar
Dhawan':2378},
2017:{'Virat Kohli':2818,'Rohit Sharma':2613,'Shikhar
Dhawan':2295},
2018:{'Virat Kohli':2735,'Rohit Sharma':2406,'Shikhar
Dhawan':2378},
2019:{'Virat Kohli':2455,'Rohit Sharma':2310,'Shikhar
Dhawan':1844}}
df=pd.DataFrame(sc_4yrs)
print(df)
print("----------------------------------------------------------------
--------")
for (year,runs) in df.iteritems():
print("Year:",year)
print(runs)
df_operations()
[8] Create the following DataFrame Sales containing year
wise sales figures for five salespersons in INR. Use the
years as column labels, and salesperson names as row
labels.
2018 2019 2020 2021
Kapil 110 205 177 189
Kamini 130 165 175 190
Shikhar 115 206 157 179
Mohini 118 198 183 169
1. Create the DataFrame.
2. Display the row labels of Sales.
3. Display the column labels of Sales.
4. Display the data types of each column of Sales.
5. Display the dimensions, shape, size and values of Sales.
import pandas as pd
#Creating DataFrame
d = {2018:[110,130,115,118],
2019:[205,165,175,190],
2020:[115,206,157,179],
2021:[118,198,183,169]}
sales=pd.DataFrame(d,index=['Kapil','Kamini','Shikhar','Mohini'])
#Display row lables
print("Row Lables:\n",sales.index)
print("~~~~~~~~~~~~~~~~~~~~~~~~~~\n")
#Display column lables
print("Column Lables:\n",sales.columns)
print("~~~~~~~~~~~~~~~~~~~~~~~~~~\n")
#Display data type
print("\nDisplay column data types")
print("~~~~~~~~~~~~~~~~~~~~~~~~~~")
print(sales.dtypes)
print("\nDisplay the dimensions, shape, size and values of Sales")
print("~~~~~~~~~~~~~~~~~~~~~~~~~~")
print("Dimensions:",sales.ndim)
print("Shape:",sales.shape)
print("Size:",sales.size)
print("Values:",sales.values)
9] Consider above dataframe and write code to do the following:
1. Display the last two rows of Sales.
2. Display the first two columns of Sales.
import pandas as pd
#Creating DataFrame
d = {2018:[110,130,115,118],
2019:[205,165,175,190],
2020:[115,206,157,179],
2021:[118,198,183,169]}
sales=pd.DataFrame(d,index=['Kapil','Kamini','Shikhar','Mohini'])
print("Display last two rows of DataFrame:")
print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
#Method 1
print("Using tail function:")
print(Sales.tail(2))
#Method 2
print("Using iloc")
print(Sales.iloc[-2:])
#With Specific Columns, I have prnted two columns
print("Sepcific Columns")
print(Sales.iloc[-2:,-2:])
print("Display first two columns of Dataframe:")
print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
#Method 1
print(Sales[[2014,2015]])
#Method 2
print(Sales[Sales.columns[0:2]])
#Method 3
print(Sales.iloc[:, 0:2] )
[10] Use above dataframe and do the following:
1. Change the DataFrame Sales such that it becomes its
transpose.
2. Display the sales made by all sales persons in the year
2018.
3. Display the sales made by Kapil and Mohini in the year
2019 and 2020.
4. Add data to Sales for salesman Nirali where the sales
made are
[221, 178, 165, 177, 210] in the years [2018, 2019,
2020, 2021] respectively
5. Delete the data for the year 2018 from the DataFrame
Sales.
6. Delete the data for sales man Shikhar from the
DataFrame Sales.
7. Change the name of the salesperson Kamini to Rani and
Kapil to Anil.
8. Update the sale made by Mohini in 118 to 150 in 2018.
Solution:
import pandas as pd
#Creating DataFrame
d = {2018:[110,130,115,118],
2019:[205,165,175,190],
2020:[115,206,157,179],
2021:[118,198,183,169]}
sales=pd.DataFrame(d,index=['Kapil','Kamini','Shikhar','Mohini'])
print("Transpose:")
print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
print(sales.T)
print("\nSales made by each salesman in 2018")
#Method 1
print(sales[2018])
#Method 2
print(sales.loc[:,2018])
print("Sales made by Kapil and Mohini:")
#Method 1
print(sales.loc[['Kapil','Mohini'], [2019,2020]])
#Method 2
print(sales.loc[sales.index.isin(["Kapil","Mohini"]),[2019,2020]])
print("Add Data:")
sales.loc["Nirali"]=[221, 178, 165, 177]
print(sales)
print("Delete Data for 2018:")
sales=sales.drop(columns=2018)
print(sales)
Sales.drop(columns=2018,inplace=True)
print(Sales)
sales=sales.drop("Shikhar",axis=0)
#sales.drop("kinshuk")
print(sales)
sales=sales.rename({"Kamini":"Rani","Kapil":"Anil"},axis="index")
print(sales)
sales.loc[sales.index=="Mohini",2018]=150
print(sales)
[11] Plot the following data on a line chart and customize
the chart according to the below-given instructions:
Month January February March April May
Sales 510 350 475 580 600
Weekly Sales Report
1. Write a title for the chart “The Monthly Sales Report“
2. Write the appropriate titles of both the axes
3. Write code to Display legends
4. Display blue color for the line
5. Use the line style – dashed
6. Display diamond style markers on data points
import matplotlib.pyplot as pp
mon =['January','February','March','April','May']
sales = [510,350,475,580,600]
pp.plot(mon,sales,label='Sales',color='b',linestyle='dashed',marker='D'
)
pp.title("The Monthly Sales Report")
pp.xlabel("Months")
pp.ylabel("Sales")
pp.legend()
pp.show()
Ouptut:
practical file questions matplotlib pyplot for class 12 IP
[12] Pratyush Garments has recorded the following data
into their register for their income from cotton clothes
and jeans. Plot them on the line chart.
Day Monday Tuesday Wednesday Thursday Friday
Cotton 450 560 400 605 580
Jeans 490 600 425 610 625
Apply following customization to the line chart.
1. Write a title for the chart “The Weekly Garment Orders”.
2. Write the appropriate titles of both the axes.
3. Write code to Display legends.
4. Display your choice of colors for both the lines cotton
and jeans.
5. Use the line style – dotted for cotton and dashdot for
jeans.
6. Display plus markers on cotton and x markers of jeans.
import matplotlib.pyplot as pp
day =['Monday','Tuesday','Wednesday','Thursday','Friday']
ct = [450,560,400,605,580]
js = [490,600,425,610,625]
pp.plot(day,ct,label='Cotton',color='g',linestyle='dotted',marker='+')
pp.plot(day,js,label='Food',color='m',linestyle='dashdot',marker='x')
pp.title("The Weekly Garment Orders")
pp.xlabel("Days")
pp.ylabel("Orders")
pp.legend()
pp.show()
Output:
[13] Observe the given data for monthly views of one of the
youtube channels for 6 months. Plot them on the line
chart.
Month January February March April May June
Views 2500 2100 1700 3500 3000 3800
Apply the following customizations to the chart:
1. Give the title for the chart – “Youtube Stats”
2. Use the “Month” label for X-Axis and “Views” for Y-Axis.
3. Display legends.
4. Use dashed lines with the width 5 point.
5. Use red color for the line.
6. Use dot marker with blue edge color and black fill color.
The solution is available in the PDF.
[14] Observe following data and plot data according to
given instructions:
Batsman 2017 2018 2019 2020
Virat Kohli 2501 1855 2203 1223
Steve Smith 2340 2250 2003 1153
Babar Azam 1750 2147 1896 1008
Rohit Sharma 1463 1985 1854 1638
Kane Williamson 1256 1785 1874 1974
Jos Butler 1125 1853 1769 1436
1. Create a bar chart to display data of Virat Kohli & Rohit
Sharma.
2. Customize the chart in this manner
1. Use different widths
2. Use different colors to represent different years score
3. Display appropriate titles for axis and chart
4. Show legends
5. Create a bar chart to display data of Steve Smith, Kane
Williamson & Jos Butler. Customize Chart as per your
wish.
6. Display data of all players for the specific year.