<jupyter_start><jupyter_text>**Importing Libraries**<jupyter_code>import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
dataset=pd.read_csv('/content/Placement_Dataset.csv')
dataset.head()<jupyter_output><empty_output><jupyter_text>**Checking for null or missing values**<jupyter_code>dataset.isnull().sum()
dataset.shape
dataset.info()<jupyter_output><class 'pandas.core.frame.DataFrame'>
RangeIndex: 215 entries, 0 to 214
Data columns (total 15 columns):
 #   Column          Non-Null Count  Dtype  
---  ------          --------------  -----  
 0   sl_no           215 non-null    int64  
 1   gender          215 non-null    object 
 2   ssc_p           215 non-null    float64
 3   ssc_b           215 non-null    object 
 4   hsc_p           215 non-null    float64
 5   hsc_b           215 non-null    object 
 6   hsc_s           215 non-null    object 
 7   degree_p        215 non-null    float64
 8   degree_t        215 non-null    object 
 9   workex          215 non-null    object 
 10  etest_p         215 non-null    float64
 11  specialisation  215 non-null    object 
 12  mba_p           215 non-null    float64
 13  status          215 non-null    object 
 14  salary          148 non-null    float64
dtypes: float64(6), int64(1), object(8)
memory usage: 25.3+ KB<jupyter_text>**Replacing missing values with the median value**<jupyter_code>sns.distplot(dataset.salary)
dataset['salary'].fillna(dataset['salary'].median(),inplace=True)
dataset.isnull().sum()<jupyter_output><empty_output><jupyter_text>* Missing values have been replaced with the median value<jupyter_code>dataset.head()
sns.set_style('whitegrid')
sns.countplot(x='gender',data=dataset)
plt.figure(figsize=(10,10))

plt.subplot(221)
sns.countplot(x='hsc_b',data=dataset)



plt.subplot(222)
sns.countplot(x='ssc_b',data=dataset)<jupyter_output><empty_output><jupyter_text>* Board Of Education does not affect Placement Status much<jupyter_code>N_placed=dataset[dataset["status"]=="Not Placed"]
Placed=dataset[dataset["status"]=="Placed"]

plt.figure(figsize=(10,10))

plt.subplot(221)
plt.pie(Placed["gender"].value_counts(),labels={"Male"," Female"},colors={"cyan", "pink"},shadow=True,autopct = '%1.1f%%')
plt.title("Placed Student")


plt.subplot(222)
plt.pie(N_placed["gender"].value_counts(),labels={"Male"," Female"},colors={"green", "orange"},shadow=True,autopct = '%1.1f%%')
plt.title("Not Placed Student")
plt.figure(figsize=(6,6))
sns.boxplot("salary", "gender", data=dataset)<jupyter_output>/usr/local/lib/python3.7/dist-packages/seaborn/_decorators.py:43: FutureWarning: Pass the following variables as keyword args: x, y. From version 0.12, the only valid positional argument will be `data`, and passing other arguments without an explicit keyword will result in an error or misinterpretation.
  FutureWarning<jupyter_text>From the above box plot we can say that there is more no. of outlier in Male students than Female students in terms of Salary. Insights*  More outliers on Male -> Male students are getting high CTC jobs.*  Male students are offered slightly greater salary than female on an average.   **Does Secondary Education affect placements?**<jupyter_code>#Kernel-Density Plot
sns.kdeplot(dataset.ssc_p[ dataset.status=="Placed"])
sns.kdeplot(dataset.ssc_p[ dataset.status=="Not Placed"])
plt.legend(["Placed", "Not Placed"])
plt.xlabel("Secondary Education Percentage")
plt.show()<jupyter_output><empty_output><jupyter_text>* All students with Secondary Education Percentage above 90% are placed* All students with Secondary Education Percentage below 50% are not-placed* Students with good Secondary Education Percentage are placed on average.  **Does Higher Secondary School affect Placements?**<jupyter_code>#Kernel-Density Plot
sns.kdeplot(dataset.hsc_p[ dataset.status=="Placed"])
sns.kdeplot(dataset.hsc_p[ dataset.status=="Not Placed"])
plt.legend(["Placed", "Not Placed"])
plt.xlabel("Higher Secondary Education Percentage")
plt.show()<jupyter_output><empty_output><jupyter_text>* Overlap here too. More placements for percentage above 65%* Straight drop below 60 in placements -> Perntage must be atleast 60 for chance of being placed<jupyter_code>sns.countplot("hsc_s", hue="status", data=dataset)
plt.show()<jupyter_output>/usr/local/lib/python3.7/dist-packages/seaborn/_decorators.py:43: FutureWarning: Pass the following variable as a keyword arg: x. From version 0.12, the only valid positional argument will be `data`, and passing other arguments without an explicit keyword will result in an error or misinterpretation.
  FutureWarning<jupyter_text>* We have very less students with Arts specialization.<jupyter_code>plt.figure(figsize =(18,6))

plt.subplot(221)
sns.boxplot("salary", "ssc_b", data=dataset)

plt.subplot(222)
sns.boxplot("salary","hsc_b",data=dataset)<jupyter_output>/usr/local/lib/python3.7/dist-packages/seaborn/_decorators.py:43: FutureWarning: Pass the following variables as keyword args: x, y. From version 0.12, the only valid positional argument will be `data`, and passing other arguments without an explicit keyword will result in an error or misinterpretation.
  FutureWarning
/usr/local/lib/python3.7/dist-packages/seaborn/_decorators.py:43: FutureWarning: Pass the following variables as keyword args: x, y. From version 0.12, the only valid positional argument will be `data`, and passing other arguments without an explicit keyword will result in an error or misinterpretation.
  FutureWarning<jupyter_text>* Outliers on both, but students from Central Board are getting the highly paid jobs. * High salary from both Central and Other.* High salary for both high and low percentage.* Thus, both these feature doesnot affect salary.  **Does Under Graduate affect placements?**<jupyter_code>#Kernel-Density Plot
sns.kdeplot(dataset.degree_p[ dataset.status=="Placed"])
sns.kdeplot(dataset.degree_p[ dataset.status=="Not Placed"])
plt.legend(["Placed", "Not Placed"])
plt.xlabel("Under Graduate Percentage")
plt.show()<jupyter_output><empty_output><jupyter_text>* Overlap here too. But More placements for percentage above 65.* UG Percentage least 50% to get placement<jupyter_code>plt.figure(figsize=(10,10))

plt.subplot(221)
sns.countplot(x='degree_t', data=dataset)

plt.subplot(222)
sns.barplot(x='degree_t',y='degree_p',hue='gender',data=dataset)<jupyter_output><empty_output><jupyter_text>* We have very less students with "Other". We cant make decision from few cases<jupyter_code>plt.figure(figsize =(6,6))
sns.boxplot("salary", "degree_t", data=dataset)
plt.show()<jupyter_output>/usr/local/lib/python3.7/dist-packages/seaborn/_decorators.py:43: FutureWarning: Pass the following variables as keyword args: x, y. From version 0.12, the only valid positional argument will be `data`, and passing other arguments without an explicit keyword will result in an error or misinterpretation.
  FutureWarning<jupyter_text>* Science&Tech students getting more salary on average* Management students are getting more highly paid  jobs.<jupyter_code>sns.lineplot("degree_p", "salary", hue="degree_t", data=dataset)
plt.show()<jupyter_output>/usr/local/lib/python3.7/dist-packages/seaborn/_decorators.py:43: FutureWarning: Pass the following variables as keyword args: x, y. From version 0.12, the only valid positional argument will be `data`, and passing other arguments without an explicit keyword will result in an error or misinterpretation.
  FutureWarning<jupyter_text>* Percentage does not seem to affect salary   **Does Work Experience affect placements?**<jupyter_code>sns.countplot("workex",hue="status", data=dataset)<jupyter_output>/usr/local/lib/python3.7/dist-packages/seaborn/_decorators.py:43: FutureWarning: Pass the following variable as a keyword arg: x. From version 0.12, the only valid positional argument will be `data`, and passing other arguments without an explicit keyword will result in an error or misinterpretation.
  FutureWarning<jupyter_text>* **This affects Placement**. Very few students with work experience not getting placed!<jupyter_code>plt.figure(figsize =(6,6))
sns.boxplot("salary", "workex", data=dataset)
plt.show()<jupyter_output>/usr/local/lib/python3.7/dist-packages/seaborn/_decorators.py:43: FutureWarning: Pass the following variables as keyword args: x, y. From version 0.12, the only valid positional argument will be `data`, and passing other arguments without an explicit keyword will result in an error or misinterpretation.
  FutureWarning<jupyter_text>* Outliers (High salary than average) on bith end but students with experience getting dream jobs  **Employability test percentage**<jupyter_code>#Kernel-Density Plot
sns.kdeplot(dataset.etest_p[ dataset.status=="Placed"])
sns.kdeplot(dataset.etest_p[ dataset.status=="Not Placed"])
plt.legend(["Placed", "Not Placed"])
plt.xlabel("Employability test percentage")<jupyter_output><empty_output><jupyter_text>* High overlap -> It does not affect placement status much<jupyter_code>plt.figure(figsize=(6,6))
sns.lineplot("etest_p", "salary", data=dataset)<jupyter_output>/usr/local/lib/python3.7/dist-packages/seaborn/_decorators.py:43: FutureWarning: Pass the following variables as keyword args: x, y. From version 0.12, the only valid positional argument will be `data`, and passing other arguments without an explicit keyword will result in an error or misinterpretation.
  FutureWarning<jupyter_text>* does not affect placements and salary much  **Specialisation (Post Graduate Specialization)**<jupyter_code>fig=plt.figure(figsize=(10,5))
sns.countplot("specialisation", hue="status", data=dataset)
plt.show()<jupyter_output>/usr/local/lib/python3.7/dist-packages/seaborn/_decorators.py:43: FutureWarning: Pass the following variable as a keyword arg: x. From version 0.12, the only valid positional argument will be `data`, and passing other arguments without an explicit keyword will result in an error or misinterpretation.
  FutureWarning<jupyter_text>* Marketing and Finance are the most demanded specialisation among the two specialisation according to the given* This feature affects Placement status.* Comparitively very low not-placed students in Mkt&Fin Section<jupyter_code>plt.figure(figsize =(8,6))
sns.boxplot("salary", "specialisation", data=dataset)<jupyter_output>/usr/local/lib/python3.7/dist-packages/seaborn/_decorators.py:43: FutureWarning: Pass the following variables as keyword args: x, y. From version 0.12, the only valid positional argument will be `data`, and passing other arguments without an explicit keyword will result in an error or misinterpretation.
  FutureWarning<jupyter_text>* More Highly Paid Jobs for Mkt & Fin students  **Does MBA Percentage affect placements?**<jupyter_code>plt.figure(figsize =(15,10))

plt.subplot(221)
sns.boxplot("mba_p", "status", data=dataset)

plt.subplot(222)
sns.lineplot("mba_p", "salary", data=dataset)<jupyter_output>/usr/local/lib/python3.7/dist-packages/seaborn/_decorators.py:43: FutureWarning: Pass the following variables as keyword args: x, y. From version 0.12, the only valid positional argument will be `data`, and passing other arguments without an explicit keyword will result in an error or misinterpretation.
  FutureWarning
/usr/local/lib/python3.7/dist-packages/seaborn/_decorators.py:43: FutureWarning: Pass the following variables as keyword args: x, y. From version 0.12, the only valid positional argument will be `data`, and passing other arguments without an explicit keyword will result in an error or misinterpretation.
  FutureWarning
{'fraction_non_alphanumeric': 0.10795356090798822, 'fraction_numerical': 0.023306186102928436, 'mean_word_length': 5.626291618828932, 'pattern_counts': {'":': 0, '<': 70, '<?xml version=': 0, '>': 73, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '20', 'dir': 'jupyter-structured-clean-dedup', 'id': '80836', 'license': 'MIT', 'n_tokens_mistral': 3774, 'n_tokens_neox': 3479, 'n_words': 1078, 'path': 'EDA.ipynb', 'repo_name': 'nabeela14/Placement---DataAnalysis', 'size': '11542'}