Download as pdf or txt
Download as pdf or txt
You are on page 1of 13

Python Programs for the practical record:

[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
n = np.arange(41,60,2.5)
s = pd.Series(n)
print(s)
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
print(pd.Series(44,range(1,11)))

[3] Create a panda’s series from a dictionary of values and a ndarray.


Solution:
import pandas as pd
import numpy as np
#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)
[4] Given a Series, print all elements above the 75th percentile.
Solution:
import pandas as pd
s = pd.Series([55,45,44,65,74,75,36,25,98,45,32,77])
print('\n Original Series: ')
print(s)

print('\n 75th Percentile: ')


q = s.quantile(q=0.75)
print(q)

print('\n Values above 75th Percentile: ')


for i in s:
if i > q:
print(i)

OUTPUT:
Original Series:
0 55
1 45
2 44
3 65
4 74
5 75
6 36
7 25
8 98
9 45
10 32
11 77
dtype: int64

75th Percentile:
74.25

Values above 75th Percentile:


75
98
77
[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
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("Printing row labels in a list:")
print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
idx=df.index
l=list(idx)
print(l)
print("Printing 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)

[6] Create a data frame 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 data frame and print it along with their index using iteritems().

Solution:
import pandas as pd
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)

[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 labels
print("Row Labels:\n",sales.index)
print("~~~~~~~~~~~~~~~~~~~~~~~~~~\n")
#Display column labels
print("Column Labels:\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 the 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 printed two columns
print("Specific 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 data frame and do the following:

1. Change the DataFrame Sales such that it becomes its transpose.


2. Display the sales made by all salespersons 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 salesman Shikhar from the DataFrame Sales.
7. Change the name of the salesperson from 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:
# x axis values
x1 = [2,4,7,8,10,12] and x2 = [3,4,6,8,10,12]
# corresponding y axis values
y1 = [2,6,3,5,2,6] and y2 = [4,8,3,9,4,11]
Ensure to display an appropriate title, x and y limits, x and y labels, legend and grid.

import matplotlib.pyplot as plt

# x axis values
x1 = [2,4,7,8,10,12]
x2 = [3,4,6,8,10,12]
# corresponding y axis values
y1 = [2,6,3,5,2,6]
y2 = [4,8,3,9,4,11]
# plotting the points
plt.plot(x1, y1,
label = 'first', color='green', linestyle='dashed', linewidth=3,
marker='o', markerfacecolor='pink', markersize=7)
plt.plot(x2, y2,
label = 'second', color='red', linestyle='dotted', linewidth=3,
marker='D', markerfacecolor='gold', markersize=7)

# setting x and y axis range


plt.ylim(1,12)
plt.xlim(1,14)

# naming x axis and y axis


plt.xlabel('x-axis')
plt.ylabel('y-axis')

# To show the grid


plt.grid(color = 'green', linestyle = '-.', linewidth = 1)
# Giving a title to the graph
plt.title('Two lines on the same graph with customizations!')
Output:
# Show a legend on the graph
plt.legend()
# A legend is a small rectangular box
giving information
# about the type of line and
its color.

# Show the plot


plt.show()

[12] Plot the following data on a bar graph and customize the chart according to the
below-given instructions:
# x axis values
x = [1, 2, 3, 4, 5]
# corresponding y axis values
y = [10, 24, 36, 40, 5]
Ensure to display an appropriate title, tick labels, x and y labels.

import matplotlib.pyplot as plt

# x-axis values
x = [1,2,3,4,5]

# y-axis values
y = [10, 24, 36, 40, 5]

# Labels for the bars


tick_label = ['First', 'Second', 'Third',
'Forth', 'Fifth']

# plotting a bar chart


plt.bar(x,y,
tick_label = tick_label, width = 0.8,
color = ['red', 'green', 'yellow', 'blue', 'black'])

# x-axis label
plt.xlabel('S.No.')

# y-axis label
plt.ylabel('Height (cms)')

# Naming the title


plt.title('My first bar graph')
# Show the plot
plt.show()

[13] Plot the following data on a histogram and customize the chart according to the
below-given instructions:
marks = [21,22,23,4,5,6,77,8,9,10,31,32,33,34,35,36,37,18,49,50,100] with 5 intervals.
Ensure to display an appropriate title, x and y labels.

import numpy as np
import matplotlib.pyplot as plt
marks = [21,22,23,4,5,6,77,8,9,10,31,32,33,34,35,36,37,18,49,50,100]
bins = 5
plt.hist(marks, bins, color='blue', alpha=0.7, edgecolor='black')

# x-axis label
plt.xlabel('Marks', fontweight ='bold', fontsize = 12)

# y-axis label
plt.ylabel('No. of Students', fontweight ='bold', fontsize = 12)

# Giving a title
plt.title('Frequency Distribution',
fontweight = 'bold', fontsize = 15)

# Showing the plot


plt.show()
OUTPUT:

[14] 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 axes
3. Write code to Display legends
4. Display blue color for 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()

Output:

[15] 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 the following customization to the line chart.

1. Write a title for the chart “The Weekly Garment Orders”.


2. Write the appropriate titles of both 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 dash-dot 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()
[16] 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 a width of 5 points.
5. Use red color for the line.
6. Use a dot marker with a blue edge color and black fill color.

Solution:
import matplotlib.pyplot as pp
mon =['January','February','March','April','May','June']
views = [2500,2100,1700,3500,3000,3800]
pp.plot(mon,views,label='Views
State',color='r',linestyle='dashed', linewidth=4,\
marker='o', markerfacecolor='k', markeredgecolor='b')
pp.title("Youtube Stats")
pp.xlabel("Months")
pp.ylabel("Views")
pp.legend()
pp.show()

[17] Observe the following data and plot data according to the 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 the axis and chart
4. Show legends
5. Create a bar chart to display data from Steve Smith, Kane Williamson & Jos Butler.
Customize Chart as per your wish.
6. Display data of all players for the specific year.

You might also like