CSC - 310 Advanced Python Programming Continuous Assessment-2 Assignment:Ca2
CSC - 310 Advanced Python Programming Continuous Assessment-2 Assignment:Ca2
ADVANCED PYTHON
PROGRAMMING CONTINUOUS
ASSESSMENT-2
ASSIGNMENT:CA2
NAME : SAIRAM AP
UNIQUE ID : E62220002
In [2]: data = {
'NAME': ['ANJU', 'BOBBY', 'RIA', 'RAM',
'LAXMAN'], 'SCORE 1': [60, 50, 78, 80, 98],
'SCORE 2': [np.nan, 77, 68, np.nan, 50],
'SCORE 3': [55, 45, 68, 90, 50],
'STATE': ['NY', 'TX', np.nan, np.nan, 'CA'],
'EDUCATION': ['HIGH SCHOOL', np.nan, 'COLLEGE', np.nan, 'COLLEGE']
}
In [3]: df = pd.DataFrame(data)
In [4]: df
Out[4]:
NAME SCORE 1 SCORE 2 SCORE 3 STATE EDUCATION
In [5]: df_dropped =
df.dropna()
print(df_dropped)
NAME SCORE 1 SCORE 2 SCORE 3 STATE EDUCATION
4 LAXMAN 98 50.0 50 CA COLLEGE
In [7]: df['STATE'] =
df['STATE'].fillna(method='bfill')
print(df)
NAME SCORE 1 SCORE 2 SCORE 3 STATE EDUCATION
0 ANJU 60 NaN 55 NY HIGH SCHOOL
1 BOBBY 50 77.0 45 TX NaN
2 RIA 78 68.0 68 CA COLLEGE
3 RAM 80 NaN 90 CA NaN
4 LAXMAN 98 50.0 50 CA COLLEGE
1
10/14/24, 7:10 ca2_advanced_python - Jupyter
PM Notebook
In [8]: df_filled = df.fillna(method='ffill',
axis=1) print(df_filled)
In [10]: data = {
'NAME': ['ANJU', 'BOBBY', 'RAM',
'RIA', 'LAXMAN'],
'SCORE 1' [60 50 70 80, 75]
: , , , ,
'SCORE 2' [65 77 78 87, 98]
: , , , ,
'SCORE 3' [55 45 68 90, 50
: , , , ]
In [11]: df = pd.DataFrame(data)
2
10/14/24, 7:10 ca2_advanced_python - Jupyter
PM Notebook
In [15]: scaler = StandardScaler()
df[['SCORE 1', 'SCORE 2', 'SCORE 3']] = scaler.fit_transform(df[['SCORE 1',
'SCORE 2', '
print(df)
NAME SCORE 1 SCORE 2 SCORE 3
0 ANJU -0.649934 -1.453345 -0.409126
1 BOBBY -1.578410 -0.363336 -1.029013
2 RIA 0.278543 -0.272502 0.396728
3 RAM 1.207020 0.545004 1.760481
4 LAXMAN 0.742781 1.544179 -0.719070
3
10/14/24, 7:10 ca2_advanced_python - Jupyter
PM Notebook
In [16]: # lab experiment 3
# i. mark[:,:]
print("\nAll marks:\n", mark[:, :])
# ii. mark[1:,2]
print("\nmark[1:, 2]:\n", mark[1:, 2])
# iii. mark[1:3:1]
print("\nmark[1:3:1]:\n", mark[1:3:1])
# iv. mark[1:3:1,2]
print("\nmark[1:3:1, 2]:\n", mark[1:3:1, 2])
4
10/14/24, 7:10 ca2_advanced_python - Jupyter
PM Notebook
Even numbers: [120 122 124 126 128 130 132 134 136 138 140 142 144 146 148 150
152 154
156 158 160 162 164 166 168 170]
Array with updated value at index 5: [ 0 1 2 3 4 1000 6 7
8
9]
Boolean array for 'mango': [False True False
True] Retrieved values from a1: ['mango'
'mango']
Fahrenheit to Centigrade: [ 0. 7.222 17.778 25. 35. ]
Mark array:
[[91 69 88 73 55 55]
[76 61 86 69 75 76]
[85 56 56 68 81 92]
[54 95 79 98 97 77]
[78 89 90 67 81 91]]
All marks:
[[91 69 88 73 55 55]
[76 61 86 69 75 76]
[85 56 56 68 81 92]
[54 95 79 98 97 77]
[78 89 90 67 81 91]]
mark[1:, 2]:
[86 56 79 90]
mark[1:3:1]:
[[76 61 86 69 75 76]
[85 56 56 68 81 92]]
mark[1:3:1, 2]:
[86 56]
mark[-1:, 3]:
[67]
5
10/14/24, 7:10 ca2_advanced_python - Jupyter
PM Notebook
6
10/14/24, 7:10 ca2_advanced_python - Jupyter
PM Notebook
In
[17]: # lab experiment 4
# Create DataFrame
df = pd.DataFrame(data)
# xi) Calculate the sum for the group Spark for the column Fee
spark_sum_fee = grouped['Fee'].sum()['Spark']
print(f"\nSum for the group Spark (Fee column): {spark_sum_fee}")
# xii) Calculate the mean for the group PySpark for the column Duration, Discount
pyspark_mean_duration = grouped['Duration'].mean()
['PySpark'] pyspark_mean_discount =
grouped['Discount'].mean()['PySpark']
print(f"\nMean for the group PySpark (Duration column):
7
10/14/24, 7:10 ca2_advanced_python - Jupyter
PM Notebook
{pyspark_mean_duration}") print(f"Mean for the group PySpark (Discount
column): {pyspark_mean_discount}")
# xiii) For each group, display the count and min value
print("\nCount and min value for each
group:") grouped_result =
grouped.agg(['count', 'min'])
print(grouped_result)
8
10/14/24, 7:10 ca2_advanced_python - Jupyter
PM Notebook
9
10/14/24, 7:10 ca2_advanced_python - Jupyter
PM Notebook
Instances in group:
each
Group: PySpark
Courses Fee Duratio Discount
n
1 PySpark 50 2300
25000
5 PySpark 50 1300
13000
Group: Python
Course Fee Duration Discount
s
3 24000 40 1200
Python
6 12000 10 1000
Python
Group: Spark
Courses Fee Duration Discount
0 Spark 22000 30 1000
7 Spark 11000 20 500
10
10/14/24, 7:10 ca2_advanced_python - Jupyter
PM Python 24000 40 Notebook
1200
Spark 22000 30 1000
11
10/14/24, 7:10 ca2_advanced_python - Jupyter
PM Notebook
Spark 11000 20 500
Group information:
data = {
'Favorite Subject': ['Python', 'C', 'C++',
'Java'], 'Number of Students': [24, 6, 8, 4]
}
# Create DataFrame
df = pd.DataFrame(data)
localhost:8888/notebooks/ 12/2
ca2_advanced_python.ipynb
10/14/24, 7:10 ca2_advanced_python - Jupyter
PM Notebook
In [19]: # a) Scatter Plot
plt.figure(figsize=(8, 6))
plt.scatter(df['Favorite Subject'], df['Number of Students'],
color='blue', s=100) plt.title('Scatter Plot of Favorite Subjects vs
Number of Students')
plt.xlabel('Favorite
Subject') plt.ylabel('Number
of Students') plt.show()
localhost:8888/notebooks/ 13/2
ca2_advanced_python.ipynb
10/14/24, 7:10 ca2_advanced_python - Jupyter
PM Notebook
In [20]: # b) Bar Chart
plt.figure(figsize=(8, 6))
plt.bar(df['Favorite Subject'], df['Number of Students'],
color='green') plt.title('Bar Chart of Favorite Subjects vs
Number of Students')
plt.xlabel('Favorite
Subject') plt.ylabel('Number
of Students') plt.show()
localhost:8888/notebooks/ 14/2
ca2_advanced_python.ipynb
10/14/24, 7:10 ca2_advanced_python - Jupyter
PM Notebook
In [21]: # c) Histogram
plt.figure(figsize=(8, 6))
plt.hist(df['Number of Students'], bins=4, color='purple',
edgecolor='black') plt.title('Histogram of Number of Students')
plt.xlabel('Number of
Students')
plt.ylabel('Frequency')
plt.show()
localhost:8888/notebooks/ 15/2
ca2_advanced_python.ipynb
10/14/24, 7:10 ca2_advanced_python - Jupyter
PM Notebook
In [22]: # d) Box Plot
plt.figure(figsize=(8, 6))
sns.boxplot(data=df['Number of Students'],
color='cyan') plt.title('Box Plot of Number of
Students')
plt.xlabel('Number of
Students') plt.show()
localhost:8888/notebooks/ 16/2
ca2_advanced_python.ipynb
10/14/24, 7:10 ca2_advanced_python - Jupyter
PM Notebook
In [23]: # e) Pie Chart
plt.figure(figsize=(8, 6))
plt.pie(df['Number of Students'], labels=df['Favorite Subject'], autopct='%1.1f%
%', star plt.title('Pie Chart of Favorite Subjects')
plt.show()
localhost:8888/notebooks/ 17/2
ca2_advanced_python.ipynb
10/14/24, 7:10 ca2_advanced_python - Jupyter
PM Notebook
In [25]: plt.figure(figsize=(10, 6))
plt.plot(days, data_week1, marker='o',
label='Week 1') plt.plot(days, data_week2,
marker='o', label='Week 2') plt.title('Weekly
Rainfall Comparison')
plt.xlabel('Day')
plt.ylabel('Rainfall
(mm)') plt.legend()
plt.show()
localhost:8888/notebooks/ 18/2
ca2_advanced_python.ipynb
10/14/24, 7:10 ca2_advanced_python - Jupyter
PM Notebook
In [26]: import seaborn as sns
plt.figure(figsize=(10, 6))
sns.lineplot(x='Day', y='value', hue='variable', data=pd.melt(df_rainfall,
['Day'])) plt.title('Weekly Rainfall Comparison')
plt.xlabel('Day')
plt.ylabel('Rainfall
(mm)') plt.show()
localhost:8888/notebooks/ 19/2
ca2_advanced_python.ipynb
10/14/24, 7:10 ca2_advanced_python - Jupyter
PM Notebook
In [27]: import plotly.express as px
fig = px.line(df_rainfall, x='Day', y=['Week 1', 'Week 2'], title='Weekly
Rainfall Compa fig.show()
20
15
value
10
localhost:8888/notebooks/ 20/2
ca2_advanced_python.ipynb
10/14/24, 7:10 ca2_advanced_python - Jupyter
PM Notebook
In [28]: plt.figure(figsize=(8, 6))
plt.boxplot([data_week1, data_week2], labels=['Week 1',
'Week 2']) plt.title('Rainfall Distribution')
plt.ylabel('Rainfall
(mm)') plt.show()
localhost:8888/notebooks/ 21/2
ca2_advanced_python.ipynb
10/14/24, 7:10 ca2_advanced_python - Jupyter
PM Notebook
In [29]: plt.figure(figsize=(8, 6))
sns.boxplot(data=pd.melt(df_rainfall, ['Day']), x='variable',
y='value') plt.title('Rainfall Distribution')
plt.xlabel('Week')
plt.ylabel('Rainfall
(mm)') plt.show()
localhost:8888/notebooks/ 22/2
ca2_advanced_python.ipynb
10/14/24, 7:10 ca2_advanced_python - Jupyter
PM Notebook
In [30]: import plotly.graph_objects as
go fig = go.Figure()
fig.add_trace(go.Box(y=data_week1, name='Week 1'))
fig.add_trace(go.Box(y=data_week2, name='Week 2'))
fig.update_layout(title='Rainfall Distribution', yaxis_title='Rainfall
(mm)') fig.show()
Rainfall Distribution
20
15
Rainfall (mm)
10
localhost:8888/notebooks/ 23/2
ca2_advanced_python.ipynb
10/14/24, 7:10 ca2_advanced_python - Jupyter
PM Notebook
In data
[33]:
Out[33]
: months_as_customer age policy_number policy_bind_date policy_state policy_csl policy_deductable
In [34]: data.head(5)
Out[34]:
months_as_customer age policy_number policy_bind_date policy_state policy_csl policy_deductable p
5 rows × 40 columns
In [37]: model =
LinearRegression()
model.fit(X_train,
Out[37]: ▾
LinearRegression
LinearRegression
localhost:8888/notebooks/ 24/2
ca2_advanced_python.ipynb
10/14/24, 7:10 ca2_advanced_python - Jupyter
PM Notebook
In [39]: mae = mean_absolute_error(y_test,
y_pred) mse =
mean_squared_error(y_test, y_pred)
rmse = mean_squared_error(y_test, y_pred,
squared=False) variance_score = model.score(X_test,
y_test)
Out[42]:
policy_id subscription_length vehicle_age customer_age region_code region_density segment model
5 rows × 41 columns
In [46]: model =
LogisticRegression(max_iter=1000)
model.fit(X_train, y_train)
Out[46]:
▾ LogisticRegressi
on
LogisticRegression(max_iter=100
0)
localhost:8888/notebooks/ 25/2
ca2_advanced_python.ipynb
10/14/24, 7:10 ca2_advanced_python - Jupyter
PM Notebook
In [47]: y_pred = model.predict(X_test)
print(classification_report(y_test, y_pred,
zero_division=1)) print(f'Accuracy:
{accuracy_score(y_test, y_pred):.2f}')
precision recall f1-score support
Accuracy: 0.93
accuracy 1.00 45
macro avg 1.00 1.00 1.00 45
weighted 1.00 1.00 1.00 45
avg
localhost:8888/notebooks/ 26/2
ca2_advanced_python.ipynb
10/14/24, 7:10 ca2_advanced_python - Jupyter
PM Notebook
In [52]: knn_model =
KNeighborsClassifier()
knn_model.fit(X_train, y_train)
knn_pred =
knn_model.predict(X_test)
print("KNN Classification
KNN Classification Report
precision recall f1-score support
accuracy 1.00 45
macro avg 1.00 1.00 1.00 45
weighted 1.00 1.00 1.00 45
avg
accuracy 0.07 45
macro avg 0.06 0.08 0.07 45
weighted avg 0.05 0.07 0.06 45
C:\Users\divya\anaconda3\Lib\site-packages\sklearn\cluster\_kmeans.py:1436:
UserWarnin g:
KMeans is known to have a memory leak on Windows with MKL, when there are less
chunks t han available threads. You can avoid it by setting the environment
variable OMP_NUM_THR EADS=1.
localhost:8888/notebooks/ 27/2
ca2_advanced_python.ipynb
10/14/24, 7:10 ca2_advanced_python - Jupyter
PM Notebook
In [54]: !pip install tensorflow
localhost:8888/notebooks/ 28/2
ca2_advanced_python.ipynb
10/14/24, 7:10 ca2_advanced_python - Jupyter
PM Notebook
Requirement already satisfied: tensorflow in c:\users\divya\anaconda3\lib\site-
packages (2.17.0)
Requirement already satisfied: tensorflow-intel==2.17.0 in c:\users\divya\
anaconda3\lib
\site-packages (from tensorflow) (2.17.0)
Requirement already satisfied: absl-py>=1.0.0 in c:\users\divya\anaconda3\lib\
site-pack ages (from tensorflow-intel==2.17.0->tensorflow) (2.1.0)
Requirement already satisfied: astunparse>=1.6.0 in c:\users\divya\anaconda3\
lib\site-p ackages (from tensorflow-intel==2.17.0->tensorflow) (1.6.3)
Requirement already satisfied: flatbuffers>=24.3.25 in c:\users\divya\
anaconda3\lib\sit e-packages (from tensorflow-intel==2.17.0->tensorflow)
(24.3.25)
Requirement already satisfied: gast!=0.5.0,!=0.5.1,!=0.5.2,>=0.2.1 in c:\users\
divya\an aconda3\lib\site-packages (from tensorflow-intel==2.17.0->tensorflow)
(0.6.0)
Requirement already satisfied: google-pasta>=0.1.1 in c:\users\divya\anaconda3\
lib\site
-packages (from tensorflow-intel==2.17.0->tensorflow) (0.2.0)
Requirement already satisfied: h5py>=3.10.0 in c:\users\divya\anaconda3\lib\
site-packag es (from tensorflow-intel==2.17.0->tensorflow) (3.12.1)
Requirement already satisfied: libclang>=13.0.0 in c:\users\divya\anaconda3\
lib\site-pa ckages (from tensorflow-intel==2.17.0->tensorflow) (18.1.1)
Requirement already satisfied: ml-dtypes<0.5.0,>=0.3.1 in c:\users\divya\
anaconda3\lib
\site-packages (from tensorflow-intel==2.17.0->tensorflow) (0.4.1)
Requirement already satisfied: opt-einsum>=2.3.2 in c:\users\divya\anaconda3\
lib\site-p ackages (from tensorflow-intel==2.17.0->tensorflow) (3.4.0)
Requirement already satisfied: packaging in c:\users\divya\anaconda3\lib\site-
packages (from tensorflow-intel==2.17.0->tensorflow) (23.1)
Requirement already satisfied: protobuf!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!
=4.21.4,!= 4.21.5,<5.0.0dev,>=3.20.3 in c:\users\divya\anaconda3\lib\site-
packages (from tensorflo w-intel==2.17.0->tensorflow) (4.25.5)
Requirement already satisfied: requests<3,>=2.21.0 in c:\users\divya\anaconda3\
lib\site
-packages (from tensorflow-intel==2.17.0->tensorflow) (2.31.0)
Requirement already satisfied: setuptools in c:\users\divya\anaconda3\lib\site-
packages (from tensorflow-intel==2.17.0->tensorflow) (68.0.0)
Requirement already satisfied: six>=1.12.0 in c:\users\divya\anaconda3\lib\
site-package s (from tensorflow-intel==2.17.0->tensorflow) (1.16.0)
Requirement already satisfied: termcolor>=1.1.0 in c:\users\divya\anaconda3\
lib\site-pa ckages (from tensorflow-intel==2.17.0->tensorflow) (2.5.0)
Requirement already satisfied: typing-extensions>=3.6.6 in c:\users\divya\
anaconda3\lib
\site-packages (from tensorflow-intel==2.17.0->tensorflow) (4.7.1)
Requirement already satisfied: wrapt>=1.11.0 in c:\users\divya\anaconda3\lib\
site-packa ges (from tensorflow-intel==2.17.0->tensorflow) (1.14.1)
Requirement already satisfied: grpcio<2.0,>=1.24.3 in c:\users\divya\anaconda3\
lib\site
-packages (from tensorflow-intel==2.17.0->tensorflow) (1.66.2)
Requirement already satisfied: tensorboard<2.18,>=2.17 in c:\users\divya\
anaconda3\lib
\site-packages (from tensorflow-intel==2.17.0->tensorflow) (2.17.1)
Requirement already satisfied: keras>=3.2.0 in c:\users\divya\anaconda3\lib\
site-packag es (from tensorflow-intel==2.17.0->tensorflow) (3.6.0)
Requirement already satisfied: tensorflow-io-gcs-filesystem>=0.23.1 in c:\
users\divya\a naconda3\lib\site-packages (from tensorflow-intel==2.17.0-
>tensorflow) (0.31.0)
Requirement already satisfied: numpy<2.0.0,>=1.23.5 in c:\users\divya\
anaconda3\lib\sit e-packages (from tensorflow-intel==2.17.0->tensorflow)
(1.24.3)
Requirement already satisfied: wheel<1.0,>=0.23.0 in c:\users\divya\anaconda3\
lib\site- packages (from astunparse>=1.6.0->tensorflow-intel==2.17.0-
>tensorflow) (0.38.4)
Requirement already satisfied: rich in c:\users\divya\anaconda3\lib\site-
packages (from keras>=3.2.0->tensorflow-intel==2.17.0->tensorflow) (13.9.2)
Requirement already satisfied: namex in c:\users\divya\anaconda3\lib\site-
packages (fro m keras>=3.2.0->tensorflow-intel==2.17.0->tensorflow) (0.0.8)
Requirement already satisfied: optree in c:\users\divya\anaconda3\lib\site-
packages (fr om keras>=3.2.0->tensorflow-intel==2.17.0->tensorflow) (0.13.0)
localhost:8888/notebooks/ 29/2
ca2_advanced_python.ipynb
10/14/24, 7:10 ca2_advanced_python - Jupyter
PM Requirement already satisfied:Notebook
charset-normalizer<4,>=2 in c:\users\divya\
anaconda3\lib
\site-packages (from requests<3,>=2.21.0->tensorflow-intel==2.17.0->tensorflow)
(2.0.4) Requirement already satisfied: idna<4,>=2.5 in c:\users\divya\
anaconda3\lib\site-packag es (from requests<3,>=2.21.0->tensorflow-
intel==2.17.0->tensorflow) (3.4)
Requirement already satisfied: urllib3<3,>=1.21.1 in c:\users\divya\anaconda3\
lib\site- packages (from requests<3,>=2.21.0->tensorflow-intel==2.17.0-
>tensorflow) (1.26.16)
Requirement already satisfied: certifi>=2017.4.17 in c:\users\divya\anaconda3\
lib\site- packages (from requests<3,>=2.21.0->tensorflow-intel==2.17.0-
>tensorflow) (2024.6.2)
Requirement already satisfied: markdown>=2.6.8 in c:\users\divya\anaconda3\lib\
site-pac kages (from tensorboard<2.18,>=2.17->tensorflow-intel==2.17.0-
>tensorflow) (3.4.1)
Requirement already satisfied: tensorboard-data-server<0.8.0,>=0.7.0 in c:\users\
divya
localhost:8888/notebooks/ 30/2
ca2_advanced_python.ipynb
10/14/24, 7:10 ca2_advanced_python - Jupyter
PM Notebook
\anaconda3\lib\site-packages (from tensorboard<2.18,>=2.17->tensorflow-
intel==2.17.0->t ensorflow) (0.7.2)
Requirement already satisfied: werkzeug>=1.0.1 in c:\users\divya\anaconda3\lib\
site-pac kages (from tensorboard<2.18,>=2.17->tensorflow-intel==2.17.0-
>tensorflow) (2.2.3)
Requirement already satisfied: MarkupSafe>=2.1.1 in c:\users\divya\anaconda3\
lib\site-p ackages (from werkzeug>=1.0.1->tensorboard<2.18,>=2.17->tensorflow-
intel==2.17.0->tenso rflow) (2.1.1)
Requirement already satisfied: markdown-it-py>=2.2.0 in c:\users\divya\
anaconda3\lib\si te-packages (from rich->keras>=3.2.0->tensorflow-
intel==2.17.0->tensorflow) (2.2.0)
Requirement already satisfied: pygments<3.0.0,>=2.13.0 in c:\users\divya\
anaconda3\lib
\site-packages (from rich->keras>=3.2.0->tensorflow-intel==2.17.0->tensorflow)
(2.15.1) Requirement already satisfied: mdurl~=0.1 in c:\users\divya\anaconda3\
lib\site-packages (from markdown-it-py>=2.2.0->rich->keras>=3.2.0->tensorflow-
intel==2.17.0->tensorflow) (0.1.0)
Addition Result: 15
# Compute y = x * 10 + 500
y = x * 10 + 500
# Compute y = x * 10 + 1
y = x * 10 + 1
Computed y
values: [[121
21 1 -
19]
[141 41 11 1]]
localhost:8888/notebooks/ 31/2
ca2_advanced_python.ipynb
10/14/24, 7:10 ca2_advanced_python - Jupyter
PM Notebook
In [58]: import tensorflow as tf
# Perform multiplication
result = tf.multiply(tens1, tens2)
In [ ]:
localhost:8888/notebooks/ 32/2
ca2_advanced_python.ipynb