Professional Documents
Culture Documents
IP Project
IP Project
IP Project
CLASS:12-Sci
ROLL NUMBER:
1
CONTENTS
Chapter 1: INTRODUCTION 5
Chapter 2: FUNCTIONALTIES/SOURCE CODE 7
LITERATURE REFERENCES/BIBLIOGRAPHY 28
2
CERTIFICATE
This is to certify that this project report entitled T20 Batting Analysis
is a bonafide record of the project work done by Bhumita Sejwal of
class XII-Science, roll number ………...…. In the academic year
2022-2023. The project has been submitted in partial fulfillment of
AISSCE for practical held at St. Anthony’s Senior Secondary School,
Hauz Khas, New Delhi.
Date - Teacher-in-Charge
3
ACKNOWLEDGEMENTS
First and foremost, I thank Lord Almighty for the grace, strength and
hope to make my endeavor a success.
4
INTRODUCTION
The data stored in csv or database file is used and analyzed using
Python libraries and appropriate charts are generated to visualize our
data. This project has been made for storing the T20 Batting records
of the different matches. The code include City, Team, Against,
Name, Runs, BallsFaced, Fours, Sixes, StrikeRate,etc.It contains of
addition, modification, deletion and searching of records, generating
of records as per there requirement. At last the changes will be shown
automatically by justclicking enter key.
5
HARDWARE AND SOFTWARE RE-
QUIREMENTS
Hardware
Processor : 10th Generation Intel(R) Core(TM) i3-1035G1
Solid State Drive : 512GB
Screen Resolution : 1920 × 1080 RAM : 8 GB
Others : Standard computer peripherals like keyboard, mouse, etc.
Software
Operating System : : Windows 10 Programming
Tool : Python 3.11
CSV File Tool : Microsoft Excel
6
SOURCE CODE
import pandas as pd
import matplotlib.pyplot as plt
while True:
print("MAIN MENU")
print("1.Dataframe Stats")
print("2.Record Analysis")
print("3.Insert Delete Record")
print("4.Data Visualization as per records")
print("5.Customized Data Visualization")
print("6.Exit")
ch=int(input("Enter Your Choice:"))
if(ch==1):
df=pd.read_csv("t20wc.csv")
print("Dataframe Properties:")
print("1.Diplay the transpose")
print("2.Display column names")
print("3.Display indexes")
print("4.Display the shape")
print("5.Display the dimension")
print("6.Display the data types of all columns")
print("7.Display the size")
print("8.Back")
ch1=int(input("Enter Your Choice:"))
if ch1==1:
print(df.T)
input("Press Enter to continue...")
elif ch1==2:
print(df.columns)
input("Press Enter to continue...")
elif ch1==3:
print(df.index)
input("Press Enter to continue...")
elif ch1==4:
print(df.shape)
input("Press Enter to continue...")
elif ch1==5:
print(df.ndim)
input("Press Enter to continue...")
elif ch1==6:
print(df.dtypes)
input("Press Enter to continue...")
elif ch1==7:
print(df.size)
input("Press Enter to continue...")
elif ch1==8:
pass
elif ch==2:
df=pd.read_csv("t20wc.csv")
print("RECORD ANALYSIS MENU")
print("1.Highest Score (Inning - Top 10)")
print("2.Lowest Score (Inning - Botton 10)")
print("3.Specific Number of Records From Top")
print("4.Specific Number of Records From Bottom")
print("5.Details record for Sr.No.")
7
print("6.Details record for a Team")
print("7.Details record for a Batsman")
print("8.Most Runs (Top Ten)")
print("9.Least Runs (Bottom Ten)")
print("0.Back")
ch2=int(input("Enter Your Choice:"))
if ch2==1:
df1=df.loc[:,['city','name','runs','ballsFaced']]
df1=df1.sort_values(by='runs',ascending=False)
print(df1.head(10))
input("Press Enter to continue...")
elif ch2==2:
df1=df.loc[:,['city','name','runs','ballsFaced']]
df1=df1.sort_values(by='runs',ascending=False)
print(df1.tail(10))
input("Press Enter to continue...")
elif ch2==3:
no=int(input("How Many Number of Records You Want To Be
Printed From The Top:"))
df1=df.loc[:,['city','name','runs','ballsFaced']]
print(df1.head(no))
input("Press enter to continue...")
elif ch2==4:
n=int(input("How Many Number of Records You Want To Be
Printed From Bottom:"))
df1=df.loc[:,['city','name','runs','ballsFaced']]
print(df1.tail(n))
input("Press enter to continue...")
elif ch2==5:
sno=int(input("Enter The Sr.No. For Which You Want The
data To Be Displayed:"))
print(df.loc[sno])
input('Press enter to continue...')
elif ch2==6:
team=input("Enter The Sr.No. For Which You Want The
data To Be Displayed:")
df1=df.loc[df['team']==team]
print(df1.loc[:,['city','name','runs','ballsFaced']])
input('Press enter to continue...')
elif ch2==7:
print("Ensure the name should match with CSV records:")
b=input("Enter The Sr.No. For Which You Want The data To
Be Displayed:")
df1=df.loc[df['name']==b]
print(df1.loc[:,['city','name','runs','ballsFaced']])
print('------------------------------------------------')
df1.at['Total','runs']=df1['runs'].sum()
print(df1)
input('Press enter to continue...')
elif ch2==8:
df1=df[['name','runs']].groupby('name').sum()
df1=df1.sort_values(by='runs',ascending=False)
print(df1.head(10))
input("Press enter to continue...")
elif ch2==9:
df1=df[['name','runs']].groupby('name').sum()
df1=df1.sort_values('runs')
print(df1.head(10))
8
input("Press enter to continue...")
elif ch2==0:
pass
else:
print("Invalid Choice")
elif(ch==3):
df=pd.read_csv("t20wc.csv")
print("Insert Delete record")
print("1.Insert a record")
print("2.Delete a records")
print("3.Exit The Records Menu")
ch3=int(input("Enter Your Choice:"))
if ch3==1:
col=df.columns
print(col)
j=0
rec={}
for i in col:
print("Enter",col[j],"value:")
nval=input()
rec[col[j]]=nval
j=j+1
df=df.append(rec,ignore_index=True)
print("Data is Successfully Updated")
df.to_csv('t20wc.csv',index=False)
input("Press enter to continue...")
elif ch3==2:
a=int(input("Enter S.No. whose data You Want to be
deleted:"))
df.drop([a-1],inplace=True)
df.to_csv('t20wc.csv',index=False)
print("Record deleted...")
input("Press enter to continue...")
elif ch3==3:
pass
elif(ch==4):
df=pd.read_csv("t20wc.csv")
print("Data Visualization Menu - According to no. of rows")
print("1.Line Plot")
print("2.Vertical Bar Plot")
print("3.Horizontal Bar Plot")
print("4.Histogram")
print("5.Exit The Data Visualization Menu")
ch4=int(input("Enter Choice:"))
df1=pd.DataFrame()
if ch4==1:
n=int(input("How many records from the top of table you
want to plot:"))
df1=df.head(n)
df1.plot(linestyle="-.",linewidth=2,label="WORLD CUP RECORD
OF MS DHONI")
plt.show()
elif ch4==2:
n=int(input("How many records from the top of table you
want to plot:"))
df1=df.head(n)
df1.plot(kind="bar",color="pink",width=.8)
plt.show()
9
elif ch4==3:
n=int(input("How many records from the top of table you
want to plot:"))
df1=df.head(n)
df1.plot(kind="barh",color="cyan",width=.8)
plt.show()
elif ch4==4:
df.hist(color="yellow",edgecolor="pink")
plt.show()
elif ch4==5:
pass
elif(ch==5):
df=pd.read_csv("t20wc.csv")
print("Customized Data Visualization Menu")
print("1.By Player")
print("2.By Team")
print("3.Back")
ch5=int(input("Enter Choice:"))
df1=pd.DataFrame()
if ch5==1:
print("Ensure the name should match with CSV records:")
player=input("Enter player name you want to plot:")
print('''
1. Line Chart
2. Bar Chart
3. Horizontal Bar Chart
4. Histogram
5. Back
''')
ch5_1=int(input("Enter your choice:"))
if ch5_1==1:
df1=df.loc[df['name']==player]
df1=df1.loc[:,['against','runs']]
df1.plot(x='against',y='runs',kind='line',linestyle="-.",linewidth=2,co
lor='r')
plt.show()
elif ch5_1==2:
df1=df.loc[df['name']==player]
df1=df1.loc[:,['against','runs']]
df1.plot(x='against',y='runs',kind='bar',color='r')
plt.show()
df1.plot(x='against',y='runs',kind='hist',bins=25,cumula-
tive=True)
plt.show()
elif cf5_1==5:
pass
elif ch5==2:
print("Ensure the name should match with CSV records:")
team=input("Enter team name you want to plot:")
print('''
1. Line Chart
2. Bar Chart
3. Horizontal Bar Chart
4. Histogram
5. Back
''')
ch5_2=int(input("Enter your choice:"))
10
if ch5_2==1:
df1=df.loc[df['team']==team]
df1=df1.loc[:,['name','runs']]
df1.plot(x='name',y='runs',kind='line',linestyle="-.",linewidth=2,color
='r')
plt.show()
elif ch5_2==2:
df1=df.loc[df['team']==team]
df1=df1.loc[:,['name','runs']]
df1.plot(x='name',y='runs',kind='bar',color='r')
plt.show()
df1.plot(x='name',y='runs',kind='hist',bins=25,cumula-
tive=True)
plt.show()
elif ch5_2==5:
pass
elif ch==6:
print(“Invalid Choice”)
break
else:
print("*---------------------*INVALID
CHOICE*---------------------*")
11
PROPOSED METHODOLOGY AND IM-
PLEMENTATION
The T20 Batting Analysis System is designed to maintain records and details of
the teams and batsman. It allows the user to manupilate or view the details to
suit his or her needs. The T20 Batting Analysis System contains the details of
teams and batsman such as:-
1.City
2.Team
3.Against
4.Name
5.Runs
6.Balls Faced
7.Fours
8.Sixes
9.Strike Rate
Based on these data values the application provides with the following function
required by him or her:
1.Viewing transpose ofdataframe.
2. .Adding new records
3.Deleting records.
4. Graphical representation.
12
OUTPUT
1.To transpose the datframe:
13
14
3.To display column names:
15
5.To display the dimensions:
16
7. To display size:
17
9.To display bottom 10 score:
18
11.To display specific no. of records from top:
19
13. To display records for a team:
20
15. To display most runs:
21
17. To delete a record:
22
19. To plot lines graph:
23
20. To plot horizontal bars graph:
24
21. To plot line graph for specific teams:
25
22. To plot line graph for specific batsman:
26
LIMITATIONS
1.Limited data:- The application only deals with data restricted to the
details of the batsman and teams. Our study has limitations due to the
sampling methods we employed; we were only able to collect data to
a limited amount. Future research should continue examining the
levels of different matches and types of players .
Future Scope
1. Easy to modify the source code and data given.
2. Easy to update.
3. Easy to expand the data in future.
CONCLUSION
After careful analysis and capabilities of constraints of application,it
can be concluded that it is a highly efficient Python Programme.While
the programme has some limitations it is not a dire failure and can be
easily worked upon.Thus one may conclude that the project “T20
BATTING ANALYSIS SYSTEM” is a success.
27
REFERENCES
1. https://drive.google.com/file/d/19v9ktGkVOelO
tuaoREP6yDuZJO8eGjrp/view2
2. https://web.whatsapp.com/
3. Arora,S 2021,Informatics Practices(XI),Dhanpatrai & co.
(P)Ltd.,Delhi.\
4. Arora,S 2022,Informatics Practices(XII),Dhanpatrai & co.
(P)Ltd.,Delhi. 5. NCERT,Information Practices,Class XII
28