VELAMMAL VIDHYASHRAM, SURAPET
CHENNAI - 600066
PROJECT SYNOPSIS
ON
RAIN FALL IN INDIA
FOR CBSE 2026 EXAMINATION
[AS A PART OF THE COMPUTER SCIENCE COURSE (083)]
SUBMITTED BY
NAME : SANJAI S
1
ACKNOWLEDGEMENT
I Sanjai S undertook this Project work, as the part of my XII-Computer Science
course (083). I had tried to apply my best of knowledge and experience, gained during the
study and class work experience. However, developing software system is generally a quite
complex and time-consuming process. It requires a systematic study, insight vision and
professional approach during the design and development. Moreover, the developer always
feels the need, the help and good wishes of the people near you, who have considerable
experience and idea.
I would like to extend my sincere thanks and gratitude to my teacher Ms. Anitha K ,
for giving valuable time and moral support to develop this software.
I also feel indebted to my friends for the valuable suggestions during the project
work.
SANJAI S
Class XII
2
CERTIFICATE
This is to certify that the Project / Dissertation entitled is a
bonafide work done by SANJAI S of class XII Session 2025-26 in
partial fulfillment of CBSE’s AISSCE Examination 2025 and has been
carried out under my direct supervision and guidance. This report or a
similar report on the topic has not been submitted for any other
examination and does not form a part of any other course undergone by
the candidate.
Signature of Student Signature of Teacher / Guide
Name : Sanjai S Name : [Link] K (PGT-CS)
Signature of Internal Signature of Principal
3
TABLE OF CONTENT
• AIM
• INTRODUCTION
• THEORITICAL BACKGROUND
• HARDWARE AND SOFTWARE
• BLOCK DIAGRAM
• LIST OF REPORTS
• CODING AND OUTPUT OF PROJECT
• ADVANTAGES
• LIMITATION
• CONCLUSION
• BIBLOGRAPHY
4
AIM
THE MAIN AIM OF MY PROJECT IS TO CREATE ANALYSIS ON RAINFALL
IN DIFFERENT STATE AND SHOWING COMPARISON BETWEEN
RAINFALL IN DIFFERENT [Link] DATA VISUALIZATION
RAINFALL COMPARISON.
INTRODUCTION
THIS PROJECT HAS BEEN MADE FOR STORING YEAR TO YEAR DATA OF
RAINFALL WITH SUB DIVISION NAME ,AMOUNT OF RAINFALL IN EVERY
MONTH .IT CONTAIN DIFFERENT TYPES OF GRAPHS ,REPORTS
,MAXIMUM AND MINIMUM AMOUNT OF RAINFALL .
5
THEORITICAL BACKGROUND
❖WHAT IS PYTHON?
Python is an interpreted, object-oriented, high-level programming language with
dynamic semantics. Its high-level built in data structures, combined with
dynamic typing and dynamic binding; make it very attractive for Rapid
Application Development, as well as for use as a scripting or glue language to
connect existing components together. Python's simple, easy to learn syntax
emphasizes readability and therefore reduces the cost of program maintenance.
Python supports modules and packages, which encourages program modularity
and code reuse. The Python interpreter and the extensive standard library are
available in source or binary form without charge for all major platforms, and
can be freely distributed.
Often, programmers fall in love with Python because of the increased
productivity it provides. Debugging Python programs is easy: a bug or bad input
will never cause a segmentation fault. Instead, when the interpreter discovers an
error, it raises an exception. A source level debugger allows inspection of local
and global variables, evaluation of arbitrary expressions, setting breakpoints,
stepping through the code a line at a time, and so on. The debugger is written in
Python itself, testifying to Python's introspective power. On the other hand,
often the quickest way to debug a program is to add a few print statements to the
source: the fast edit-test-debug cycle makes this simple approach very effective.
6
What is Pandas?
Pandas is Python’s library for data analysis. Pandas has derived its name from
“Panel Data System” and its has become very popular choice for data analysis.
Data Analysis refers to process of evaluating big data sets using analytical and
statistical tools so as to discover useful information and conclusions to support
business decision making.
While working with Pandas, it is required to import Pandas and numpy both by
writing:
import pandas as pd
importnumpy as np
Pandas is best at handling huge tabular data sets comprising different data
formats.
Pandas provide two data structures for storing data:
a) Series
b) Dataframe
Data visualization
Data visualization “A picture is worth a thousand words”. Most of us are
familiar with thisexpression. Data visualization plays an essential role in the
representation of both small andlarge-scale data. It especially applies when
trying to explain the analysis of increasingly large
7
datasets. Data visualization is the discipline of trying to expose the data to
understand it byplacing it in a visual context. Its main goal is to distill large
datasets into visual graphics toallow for easy understanding of complex
relationships within the data. Several datavisualization libraries are available in
Python, namely Matplotlib, Seaborn, and Folium etc
Purpose of Data visualization
• Better analysis
• Quick action
• Identifying patterns
• Finding errors
• Understanding the story
• Exploring business insights
• Grasping the Latest Trends
What is [Link]
Matplotlib is the whole python package/ library used to create 2D graphs and
plots by usingpython scripts. pyplot is a module in matplotlib, which supports a
very wide variety of graphsand plots namely - histogram, bar charts, power
spectra, error charts etc. It is used along withNumPy to provide an environment
for MatLab. Pyplot provides the state-machine interfaceto the plotting library in
[Link] means that figures and axes are implicitly andautomatically created
8
to achieve the desired [Link] example, calling plot from pyplot
willautomatically create the necessary figure and axes to achieve the desired
plot. Setting a titlewill then automatically set that title to the current axes
[Link] interface isgenerally preferred for non-interactive plotting (i.e.,
scripting).
Various charts types :
CSV FILE:
9
HARDWARE AND SOFTWARE
REQUIREMENT
HARDWARE SYSTEM:
OS- Windows 7 Professional 32-Bit (6.1, Build 7601)
Language: English
System Manufacture-Gigabyte Technology Co., Ltd
BIOS:-BIOS Date: 08/03/13 09:45:07
Ver: 04.06.05
Processor:- Intel (R) Core ™ i3-3220CPU
@3.30 GHz (4CPUs), ~3.3GHz
Memory: 2048 MB RAM
DirectX Version: Direct XII 22
DISPLAY DEVICE:
Name:-Intel(R) HD Graphics
Manufacturer: - Gigabyte Technology Co., Ltd
Chip Type: - Intel(R) HD Graphics Family
DAC Type:-Internal
Approx. Total Memory:-775 MB
Current Display mode: - 1336 X 768
(32 Bit)(60Hz)
Monitor:- Generic PnP Monitor 23
DRIVER:
Main Driver: - igdumdim [Link],igdloiumd [Link],igd lo
Version:-10.18.10.3345
Date:-10/28/13
WHQL logo’s:- Yes
DDI Version: II
Driver Model:-WDDM 1.1 24
10
SOFTWARE REQUIREMENT:
• Windows 2000/XP OS is desirable.
• Python IDLE Ver 3.7.2 or higher should be installed.
• MySQL 8.0 should be installed.
• PANDAS Library with [Link] be present at machine.
LIST OF REPORTS
REPORTS ON COMPLETE DATA
COLUMN WISE REPORT ROW WISE REPORT
>Count>Subdivision
>Mean>Year
>Maximum>Annual
>Minimum>Jan
>Percentage>Feb
11
DATA VISUALISATION
ONE SUBPLOT ON MULTIPLE DATA
GRAPHS ON COMPLETE DATA
>Annual Rainfall
>Monthly Rainfall
5 GRAPHS ON SPECIFIC DATA
>Kerala
>Punjab
>Lakshadweep
>Orissa
>Bihar
12
CODING & OUTPUT
[Link] as plt
import pandas as pd
importnumpy as np
df=pd.read_csv("rainfall in india [Link]")
print(df)
13
14
15
BASIC INFORMATION FROM THE DATAFRAME
print([Link]())
16
print ([Link])
print(df['SUBDIVISION'].unique())
print ([Link])
17
print ([Link])
COLUMNWISE REPORT NO 1:COMPLETE DATAFRAME RAINFALL STATISTICS
print("Annual Rainfall Statistics for India 2000-2002")
print("----------------------")
df=df.sort_values(['ANNUAL'],ascending=False)
print("Total Rainfall :",df[['ANNUAL']].sum())
print("----------------------------")'''
18
print("max Rainfall in a region :",df[['ANNUAL']].max())
print(df[['SUBDIVISION','YEAR','ANNUAL','JAN-FEB','MAR-MAY','JUN-
SEP','OCT-DEC']])
print("-----------------------------")
print("Min rainfall in a region:",df[['ANNUAL']].min())
print(df[['SUBDIVISION','YEAR','ANNUAL','JAN-FEB','MAR-MAY','JUN-
SEP','OCT-DEC']])
19
print("")
print("average or mean rainfall:",df[['ANNUAL']].mean())
print()
print(df[['SUBDIVISION','YEAR','ANNUAL','JAN-FEB','MAR-MAY','JUN-
SEP','OCT-DEC']])
print("")
20
print(df['SUBDIVISION'].unique())
COLUMN WISE REPORT NO 2: ON BASIS OF BIHAR
subdivision=input("enter SUBDIVISION:")
dfsubdivision=df[df['SUBDIVISION']==subdivision]
[Link]()
dfp=dfsubdivision.sort_values(['ANNUAL'],ascending=True)
21
print(dfp[['SUBDIVISION','ANNUAL']])
print("")
print("annual record in %s %subdivision)
print("")
print("total subdivision in %s whose annual :"%subdivision,
dfsubdivision['ANNUAL'].SUM")
print("")
print(" district with maximum population whose annual:")
print(dfp[['SUBDIVISION','ANNUAL']].tail(1))
print("")
print("minimum rainfall":)
print(dfp[['SUBDIVISION','ANNUAL']].head(1))
print("")
print("average of annual :", dfsubdivision['ANNUAL'].mean()
HARYANA DELHI & CHANDIGHAR
dfS=dfsubdivision.sort_values(['ANNUAL'],ascending=True)
print(dfS[['SUBDIVISION',ANNUAL]])
22
print("")
print("ANNUAL record in %s"%subdivision)
print("")
print("total rainfall in %s
annual:"%subdivision,dfsubdivision['ANNUAL'].SUM())
print("")
print("maximum rainfall:")
print(dfa[['SUBDIVISION','ANNUAL']].tail(1))
print("")
print("minimum rainfall:")
print(dfa[['SUBDIVISION','ANNUAL']].head(1))
print("")
print("Average of rainfall:",dfsubdivision['ANNUAL'].mean())
print("Annual Rainfall Statistic for India")
print("")
yr=int(input("Enter the year:"))
dfy=df[df['YEAR']==yr]
print("")
dfy.sort_values(['ANNUAL'],ascending=False)
print("Total rainfall:",dfy[['ANNUAL']].sum())
print("MAX rainfall in a region:",dfy[['ANNUAL']].max())
print("MIN rainfall in a region:",dfy[['ANNUAL']].min())
print("Average or mean rainfall:",dfy[['ANNUAL']].mean())
23
print(" Annual Rainfall Statistics for India")
print("")
print(df['SUBDIVISION'].unique())
sd=input("enter the subdivision:")
dfs=df[df['SUBDIVISION']==sd]
print("")
dfs.sort_values(['ANNUAL'],ascending= False)
print("Total rainfall:",dfy[['ANNUAL']].sum())
print("MAX rainfall in a region:",dfy[['ANNUAL']].max())
print("MIN rainfall in a region:",dfy[['ANNUAL']].min())
print("Average or mean rainfall:",dfy[['ANNUAL']].mean())
print(" Annual Rainfall Statistics for India")
print("")
mon=input("enter the MONTH B/W June-Sep:")
dfm=df[['SUBDIVISION','YEAR',mon]]
print("")
dfm.sort_values([mon],ascending= False)
print("Total rainfall in the month of %s:"%mon,dfm[[mon]].sum())
print("MAX rainfall in a region:",dfm[[mon]].max())
print("MIN rainfall in a region:",dfm[[mon]].min())
print("Average or mean rainfall:",dfm[[mon]].mean())
print(" Annual Rainfall Statistics for India")
24
print("")
mon=input("enter the MONTH B/W Oct-Dec:")
dfm=df[['SUBDIVISION','YEAR',mon]]
print("")
dfm.sort_values([mon],ascending= False)
print("Total rainfall in the month of %s:"%mon,dfm[[mon]].sum())
print("MAX rainfall in a region:",dfm[[mon]].max())
print("MIN rainfall in a region:",dfm[[mon]].min())
print("Average or mean rainfall:",dfm[[mon]].mean())
25
dfpunjab=df[df['SUBDIVISION']=='PUNJAB']
[Link](15)
dfpunjab[['YEAR','ANNUAL']].plot(kind='bar',x='YEAR')
a=int(input("enter the year(2000-2002):"))
dfy=dfpunjab[dfpunjab['YEAR']==a]
dfy
26
[Link][0,3:14].plot(kind='bar')
[Link]("MONTHLY RAINFALL/n %d"%(a))
dfy1=dfpunjab[dfpunjab['YEAR']==2000]
dfy2=dfpunjab[dfpunjab['YEAR']==2001]
dfy3=dfpunjab[dfpunjab['YEAR']==2002]
X=['JAN','FEB','MAR','APR','MAY','JUN','JUL','AUG','SEP','OCT','NOV','DEC']
[Link](figsize=(18,6))
[Link]("MONTHLY RAINFALL /n")
[Link](132)
[Link]("2000")
[Link](X,[Link][0,2:14],color='k')
[Link](133)
[Link]("2002")
[Link](X,[Link][0,2:14],'g--')
'''
ADVANTAGES
• RECORDS CAN BE STORED IN FAST MANNER.
• ANY RECORD CAN BE EASILY ACCESSED WITH THE HELP OF
GRAPH.
• GRAPHS CAN BE EASILY STUDIED
27
LIMITATIONS
• PROVIDED EXTREMELY STREAMLINED FORMS OF DATA
REPRESENTATION
• HELPS TO SHORTEN THE PRODURE OF HANDLING DATA
• MAKES DATA FLEXIBLE AND CUSTOMIZABLE
CONCLUSION
“RAINFALL IN INDIA 1901-2015” HAS BEEN MADE TO REDUCE THE
MANUAL WORK AND WITH THE HELPS OF THIS PROJECT EVERY WORK
IS BEING PROCESSED IN ACCURATE MANNER
BIBLOGRAPHY
INFORMATICS PRACTICES SUMITA ARORA CLASS XII
INFORMATICS PRACTICES SUMITA ARORA CLASS XI
[Link]
COLAB PLATFORM
28