End To End Cricket Data Analytics Project Using Web Scraping, Python, Pandas and Power BI
Aug 15, 2023
End To End Cricket Data Analytics Project Using Web Scraping, Python, Pandas and Power BI
End-to-end sports data analytics project for your resume. In this project, we will cover web scraping (from the ESPN Cricinfo website), python, pandas, and Power BI to perform analyses on T20 world cup cricket data. Note : The Bright Data interface has been updated as part of their product enhancement. To access the Datasets \u0026 Web Scraper IDE, please select the third icon from the left-side menu bar. Then, click on the ‘My Scrapers’ option. There, you will find the collectors. From this point, you can proceed with the same process as shown in the video. Bright data signup link to get 15$ free credits: https://brdta.com/codebasics Sample LinkedIn post for the final challenge: https://bit.ly/3uHCzQE Code \u0026 other files can be downloaded from here: https://codebasics.io/resources Bright Data error guide: https://drive.google.com/file/d/1P-UX … ⭐️ Timestamps ⭐️ 00:00:00 Overview 00:00:29 Problem statement 00:02:33 Requirement scoping 00:09:21 Data collection using web scraping (from ESPN Cricinfo website) 00:21:57 Data cleaning and transformation in Python Pandas 00:44:01 Data transformation in Power Query 00:56:52 Data modeling and building parameters using DAX 01:08:17 Build dashboard in Power BI 01:20:53 Collect insights from the dashboard and select the final 11 players 01:38:04 Challenge for you and prize In this end-to-end data analytics project for beginners and advanced users, we have used cricket T20 world cup (2022) data to build insights on a best 11 players team that we can assemble from the earth that can go and play with aliens. We used bright data web scraping to collect data from espncricinfo website then we performed some data transformation and cleaning in pandas, followed by building dashboards in power bi. This is a solid data science resume project that will make your resume stand out in the competition. It is a fully guided data analytics project with all the materials included. 🔖Hashtags🔖 #cricketanalysispowerbi #cricketanalysispowerbiproject #powerbiproject #analysisproject #dataanalysisproject #cricketdataanalysispowerbi #dataanalysispowerbi #powerbidashboardproject #powerbidashboard #endtoendpowerbiproject #powerbiproject #powerbiprojects Do you want to learn technology from me? Check https://codebasics.io/?utm_source=des … for my affordable video courses. Need help building software or data analytics/AI solutions? My company https://www.atliq.com/ can help. Click on the Contact button on that website. 🎥 Codebasics Hindi channel: / @codebasicshindi #️⃣ Social Media #️⃣ 🔗 Discord: https://discord.gg/r42Kbuk 📸 Dhaval’s Personal Instagram: https://www.instagram.com/dhavalsays/ 📸 Codebasics Instagram: https://www.instagram.com/codebasicshub/ 🔊 Facebook: https://www.facebook.com/codebasicshub 📱 Twitter: https://twitter.com/codebasicshub 📝 Linkedin (Personal): https://www.linkedin.com/in/dhavalsays/ 📝 Linkedin (Codebasics): https://www.linkedin.com/company/code … 🔗 Patreon: https://www.patreon.com/codebasics?fa …
Content
0 -> T20 Cricket World Cup was finished just
2.399 -> few weeks back with England claiming
4.2 -> victory over Pakistan, and today we are
6.54 -> beginning a cricket data analytics
8.58 -> series using same T20 World Cup data. We
11.7 -> will begin this project by scraping
13.74 -> data from ESPNcricinfo website. Then
16.68 -> doing data cleaning and transformation
18.18 -> in Pandas, and then eventually building
20.699 -> dashboards in Power BI. Before we begin
23.039 -> any technical work, let's look at the
24.779 -> exact problem statement and our special
27.42 -> stakeholders that we got in this project.
32.48 -> The whole atmosphere is charged with one
36.48 -> title.
40.68 -> Thursday
49.11 -> [Music]
60.04 -> [Phone Ringing]
64.04 -> We like your cricket!
68.1 -> Surrender, Earth!
70.14 -> You need to fight 8 billion people for
72.96 -> that! We destroy! Then you get nothing!
76.799 -> Negotiate.
79.74 -> You defeat us in cricket,
82.02 -> you get Earth! If you lose join me as an
86.159 -> intern! Deal!
99.299 -> Tony, we got to save Earth give me your
102.299 -> best 11!
103.86 -> Best 11 what? Data analysts?
107.04 -> No, cricket players!
110.1 -> As you saw Planet Sporta has challenged
113.04 -> planet Earth to play cricket, and Nick
115.68 -> Fury has assembled the secret agents of
119.04 -> field to work on this project to find
121.74 -> out the best 11 players based on the T20
125.159 -> World Cup Cricket data. Tony Sharma is in
128.22 -> charge of this project. He is not only a
130.679 -> senior data analyst, he's also a cricket
133.68 -> subject matter expert. So, in the next
135.84 -> video you will see what kind of
137.76 -> algorithm Tony Sharma comes up to pick
140.22 -> this best 11 team who can go and defeat
142.98 -> the aliens. At the end of the video, we
144.9 -> are going to give you a challenge based
146.52 -> on this project and by working on that
148.98 -> challenge you will be able to win
150.54 -> exciting prizes. So make sure you watch
152.52 -> till the end.
154.68 -> Nick, this is the requirement you gave me.
159.78 -> You said we don't know the strengths and
162 -> weaknesses of our opponents, but give the
163.98 -> best eleven from the planet. So, this is what
165.9 -> I'm going to do:
167.16 -> I'm going to give you a team that will
169.08 -> score 180 runs on an average.
171.54 -> At the same time, this team will be able
174.06 -> to defend 150 runs. So you have a margin
177.06 -> of 30 runs to play. Do you think
178.5 -> that's enough for you? Yes, this sounds
180.3 -> like a good target because although
182.819 -> aliens have not played Cricket they have
185.04 -> a technology where they can learn things
186.66 -> really fast. Okay, so this is how I've done
188.879 -> this: I've asked I've made different
190.68 -> positions for players, and I've selected
193.019 -> parameters for each of them. I'm gonna
195 -> quickly show these parameters to you and
196.62 -> let me know if you know if you want to
198 -> add some parameters. Okay. You know
199.56 -> anything you know just this is just a
201.48 -> idea I want to give and how I'm going to
203.76 -> select the team. The first ones are the
205.62 -> openers they are going to open the
206.76 -> innings, these are the power hitters. So,
208.98 -> they will be hitting the balls out of
210.42 -> the park,
211.86 -> and
213.18 -> they will also score runs, it's just not
215.64 -> about hitting. So that's how I've
217.08 -> selected the parameters, batting average,
218.519 -> strike rate, uh boundary percentage, very
221.519 -> important where you should be scoring 50%
222.9 -> of the runs, over 50% of the runs by
225.18 -> boundaries because in the powerplay the
227.4 -> fielders are going to be inside and they
229.2 -> should be hitting outside the inner
230.76 -> circle. That's the plan and uh they
233.7 -> should be giving us at least 50 runs
235.26 -> this partnership, and uh within the first
238.019 -> five hours. Got it! I, so we'll basically
241.379 -> get players like Sehwag correct?
244.879 -> Nick, Sehwag isn't playing anymore.
247.26 -> Oh okay, I see.
249.54 -> Okay?
252.06 -> All right, then we have the middle order
254.7 -> or the anchors. So here yeah they won't
258.359 -> be hitting ball hitting the ball as hard
260.639 -> as openers, but they can shift gears and
263.52 -> hit the balls if needed. So, they will
265.44 -> have a better batting average, they will
266.94 -> bat for longer time that's why I've also
269.04 -> included the average balls faced. You know
271.259 -> they're also bat you know like
273 -> aggressively if they want. So those are
274.62 -> the kind of players you'll have here. I'm
276.12 -> going to select three players for this
277.56 -> position, so
279.36 -> overall we have five players now. So,
281.639 -> these five players will give us at least
284.58 -> 120 plus runs in the 13 to 14 overs,
287.22 -> that's the plan. I would like to see
289.62 -> Virat Kohli in this five list.
292.38 -> Oh he is playing. I think he's certainly a
294.72 -> part of this team.
296.16 -> Great! And of course we are we are making
298.08 -> this you asked uh the special
299.4 -> requirement is to consider the World Cup
301.259 -> T20 2022 for uh you know for the
304.68 -> selection of the team, so I'm select I'm
306.12 -> picking only that particular data for
307.62 -> that. Okay!
309.36 -> All right, and uh so this is going to be
312.18 -> an interesting role uh we I'm gonna get
314.58 -> one player for this role, a finisher role.
316.5 -> So, if we are chasing, this particular
318.72 -> person should be able to hit like crazy,
321.18 -> go berserk. But if you lose wickets early,
324.24 -> like if you lose a middle order so badly,
326.759 -> so this person will be able to stabilize
329.16 -> the innings and order the rest of the
330.66 -> lower order batsmen.
332.58 -> So that's the kind of player we're
333.96 -> looking for, we're looking for more of a
335.82 -> batsman here than a bowler. So uh you
339.24 -> know ideally I would need it all rounder
340.62 -> here. But again, uh with more uh batting
344.22 -> all rounder, rather bowling all rounder
345.84 -> and this will leave us with five more
348.06 -> players and uh my seventh and eighth
350.759 -> player will be all rounders or the
353.88 -> lower order batsmen. So, mostly these
355.5 -> can be spinners and uh because the the
358.38 -> last three
359.699 -> slots, I'm going to keep it for fast bowlers.
362.16 -> So, these spinners are the ones who can
364.8 -> also hit and they can hit uh without
367.32 -> thinking. Like they come to bat they just
369.419 -> start hitting. So that's the kind of
370.8 -> players we want because they will be
372.24 -> mostly coming under uh around 17th or
374.82 -> 18th over, and uh so that's why I have
378.12 -> selected uh you know I kept the
380.28 -> parameter in such a way, the batting
381.66 -> average should be at least 15 and you
384.72 -> can see the strike rate is more than
386.039 -> 140.
387.419 -> So, if even if they score 15 runs they
389.819 -> should be scoring that in around eight
391.68 -> or nine balls. And you can see the
394.199 -> bowling economy is really good it's less
396.12 -> than seven, which means if these two
397.979 -> players ball all the 20 overs, they will
400.8 -> be giving only 140, which is good for us
403.56 -> because our team target is to keep the
405.78 -> defense under 150. And their strike rate
408.96 -> is less than 20, which means if they ball
410.819 -> 20 balls, they will get one wicket at
412.68 -> least. If they ball all the 20 overs they
414.72 -> should be getting at least six tickets.
416.759 -> Um
417.6 -> nice!
418.979 -> Yeah and uh
421.44 -> here Comes the specialist fast Bowlers
423.96 -> because
425.639 -> we need to rattle the team, we need to
428.34 -> rattle the the Sportans you know, I
431.58 -> don't think they should be having
432.66 -> capability to face these bowlers. This is
435.419 -> the wolf pack we've got. They are
438.72 -> threatening, they can take wickets at
442.139 -> least every 16 balls or even less than
444.78 -> that. This is the parameter I've said for
446.28 -> them and they can ball very fast, and
448.38 -> they can also you know ball dot balls
451.38 -> over uh 40% which means, if they
454.02 -> ball four overs
455.52 -> around 10 of that will be dot balls,
457.5 -> which is great for a T20 game.
459.66 -> Exactly, dot walls are so precious for
462.78 -> T20!
464.34 -> Yes and with these 11 players I think
467.94 -> I'm pretty sure we'll save the Earth.
470.759 -> What do you think?
472.139 -> The algorithm looks pretty solid to me. I
474.9 -> am excited to see the final results
476.94 -> which our Power BI dashboard can produce.
480 -> Yeah. So this is already in progress. So,
483.419 -> I'll be uh you know I'll be showing you
485.34 -> the you know the final dashboard, and we
487.8 -> can do an analysis together to pick the
489.419 -> final eleven. Looking forward, thank you!
491.52 -> Thank you, Nick! See you then, bye!
494.22 -> Folks we had our resources on GitHub, but
497.46 -> we have moved to this resources section
499.68 -> on Codebasics.io because the file
502.319 -> sizes were getting very big. So go to
504.96 -> Codebasics.io click on resources
507.78 -> here, and you will be able to find all
510.72 -> the files here. So, here you can click on
513.18 -> download and then you can just create an
516.18 -> account for the Codebasics website and
518.7 -> login once you're logged in you will be
521.039 -> able to download all these files.
523.5 -> Now you can download whatever files you
526.02 -> need, sometimes people may not need
528.06 -> all the files although we are going to
529.86 -> provide download all button later, but
533.1 -> this way you can download just the
534.839 -> required files. Here, for example I am
537.12 -> going to download my web scrapping code
540.42 -> and once it is downloaded, you can open
543.959 -> it,
545.399 -> unzip,
548.7 -> and here you will be able to see all
551.16 -> those JS file that we need in Bright
555.6 -> Data.
557.1 -> Similarly, you can download rest of the
559.14 -> files as well.
567.29 -> [Music]
594.74 -> Folks, why so much fuss? Just use something
598.14 -> readymade. For example Bright Data!
605.72 -> [Music]
611.42 -> Bright Data uses proxy networks for building web
614.82 -> scrapers that works seamlessly. They have
617.76 -> various solutions, such as residential
619.7 -> proxies, web unlocker, and so on. They
622.8 -> also provide readymade datasets. The
625.38 -> tool that we are going to use
626.64 -> specifically is called data collector
628.56 -> and if you use the link which is given
630.6 -> in the video description below, it's a
632.279 -> special link for Codeasics, you can log
635.399 -> in here it says work email, but don't
637.56 -> worry you can use your personal email ID
640.26 -> and still login. Just select some
643.2 -> values from these two drop downs and you
645.959 -> will be able to create an account. Once
647.88 -> the account is created,
649.8 -> if you look at the dashboard you will
652.079 -> find that you will have $15
654.6 -> balance. I want to thank Bright Data for
658.079 -> giving this $15 free credit for all Code
661.56 -> basics viewers. For our data scrapping
665.16 -> work we need hardly three or four
666.959 -> dollars. So, this is more than enough! You
668.64 -> can use this credit for your other
670.68 -> projects too!
676.56 -> We are going to capture four type of
678.42 -> data for our project. Number one is this
681.3 -> detailed match results table. So we will
683.7 -> scrap this entire table. When you click
686.04 -> on this particular scorecard link, you
688.26 -> will get a detailed bowling and batting
691.38 -> scorecard. So, we are going to grab all
694.38 -> these tables as well. And then when you
696.3 -> click on any player, you will get player
698.519 -> specific information. So we'll grab few
700.38 -> fields from this also.
703.579 -> I'm going to click on user dashboard and
707.579 -> go to something called a data collector.
710.459 -> Now data collector is web crawler
713.88 -> basically which will go to the website
715.74 -> and collect the data. I have already
717.54 -> created the four collectors. So, this one
719.76 -> is for the match results. So, let's say
722.519 -> this page you want to grab that right,
725.279 -> let's look at that code and understand
727.38 -> how that works. So, when you right click
729.839 -> and say inspect, it will show you the
733.26 -> HTML tags for that particular page. And
736.2 -> you can click on this, and let's say you
739.5 -> are getting this particular table right
742.14 -> or this particular let's say cell.
744.779 -> When you look at this, see this is one
747.48 -> row, this is second row, third row and so
749.399 -> on and this particular table
751.92 -> is inside this tbody and the table
754.26 -> class is enginetable. So, now let me show
757.14 -> you my collector. So, I will go to my
761.519 -> collector here and say edit code and in
765.42 -> this one you will see the interaction
768.18 -> code as well as the parcel code. Now this
770.399 -> is a JavaScript code JavaScript is
772.68 -> better suited for web scrapping because
775.019 -> a JavaScript code runs inside the
777.42 -> browser. So, it becomes easier for that. So,
780.12 -> here this particular link that you're
782.459 -> seeing is nothing but this particular
785.1 -> page. So, what I'm saying in my collector
787.86 -> is go to that page and then collect
791.16 -> parse. Now when you say parse, it is going
793.5 -> to execute all this code. Now once again
796.139 -> this is a JavaScript code, where I am
799.82 -> locating the enginetable table, then I
803.519 -> am going into tbody and then tr.
805.98 -> data1 So, if you look at here
808.74 -> see there is an enginetable then trt
811.38 -> body and then tr.data1 and this one
814.68 -> is an array. So if you go through this
817.62 -> array one by one, you'll be able to get
819.959 -> all these records, so and that's exactly
822.6 -> what I'm doing here. See, the first
825.54 -> element is team one, second is team two,
827.88 -> then winner and so on. So if you look at
829.92 -> any row here see the first one is team
832.62 -> one, second one is team two, you can see
834.42 -> on the left side then the winner, the
837.839 -> margin, the ground and so on so that's
839.82 -> exactly what we are doing here. And then
843.12 -> it will grab all this data into match
847.62 -> summary array this is Javascript array
850.139 -> basically, and it will return that okay?
852.959 -> So let me just run this here.
856.38 -> It will take some time but you will see
858.48 -> that in the browser the page is loaded.
860.459 -> So it executed this navigate function
862.5 -> band here and now it is collecting all
865.44 -> this information. So if you look at it in
867.66 -> the output you will see this information
869.6 -> is now available as a Json, and if you
872.579 -> download that Json file this is how it
875.339 -> will look. Now, let me just format it so
877.68 -> that you can see it properly.
880.5 -> You can see that now you know you have
882.899 -> team one, team two, who is the winner,
884.76 -> margin, ground, match date, and the
887.04 -> scorecard. So, we grab this particular
890.72 -> first table in its entirety,
894.72 -> we have the entire match result for T20
898.38 -> World Cup. Now the way Bright Data
902.04 -> collector works is they're going to use
905.22 -> a smart proxy Network okay and using
908.399 -> that infrastructure, it will do web
911.399 -> scraping so that you have seamless data
914.699 -> collection without having to worry about
916.5 -> some website blocking your IP, and so on
919.139 -> because it is sort of like VPN, it is
921.24 -> using different IPs and you will not
923.699 -> have any trouble in your data collection
926.22 -> process the kind of trouble that you
928.26 -> have when you are using plain Python
930.18 -> script. If you're new to Bright Data what
932.94 -> you can do is you can use one of the
934.68 -> templates. So for example, I can click on
936.839 -> develop a self-managed uh collector, and
940.38 -> you can use one of these templates. See
942.72 -> here you are collecting data from uh
945.839 -> Quora for example, here you're collecting
948.06 -> a data from YouTube okay? So, you use that
951.66 -> template and you can run that collector
953.88 -> and you will get an understanding of
956.22 -> that. I have provided the code for all
959.22 -> these four collectors on GitHub. The link
962.339 -> is in video description below. So, if you
964.5 -> look at the web scrapping codes
966.959 -> see here is the batting summary, here is
969.24 -> the bowling summary, so these are the
971.579 -> code that you have you have interaction
973.26 -> code and you have parcer code. Now let me
975.6 -> show you batting uh summary web
977.88 -> collector. So, here I can go to batting
980.94 -> summary, click here
982.98 -> and then
984.36 -> advanced action, edit the code. Here what
987.48 -> we are doing is this first page that you
990.24 -> have is this page only okay? So, you're
993.3 -> going through that match summary page,
995.459 -> and then you are collecting all the
997.68 -> links. All right, which links?
999.839 -> So, these links see when you right click
1002.24 -> and say copy link address, you get this
1005.3 -> particular link right? So we are
1007.1 -> collecting all those links in this
1009.56 -> particular code all right? Then we are
1011.959 -> calling next stage. So, in the next stage
1013.94 -> it will execute this particular code
1015.62 -> okay, and this will be the link of that
1019.16 -> mass score, and if you want to see it
1021.019 -> from the previous run I have see I have
1023.3 -> all these links which I collected from
1026.78 -> the first stage. And in the second stage
1029.48 -> what you will do is you will go through
1032.78 -> this scorecard. So, for example this is my
1034.52 -> scorecard and if you inspect this
1037.699 -> particular page and let me click on this
1040.939 -> element and go here
1042.86 -> right,
1044 -> so if you do this one you will find that
1048.799 -> you are collecting data from a table
1050.96 -> called CI scorecard table, and if I check
1055.64 -> that in my collector here you will find
1059.66 -> that,
1061.4 -> here
1063.44 -> I am collecting that particular table
1066.32 -> and going through my first inning, second
1069.2 -> inning, etc.
1070.58 -> This code is not as hard as you think. It
1073.46 -> is just HTML, you need to have basic
1075.26 -> knowledge of HTML. You're going through
1077.419 -> those HTML elements and you're just
1079.039 -> trying to grab data from it. So, you're
1081.44 -> going through an entire list,
1084.26 -> all the scorecard one by one, and you're
1087.32 -> putting uh that summary here okay? And
1090.86 -> when you click on this it's gonna take
1092.48 -> time. What it will do is it will load
1094.46 -> this page, then it will go to this link,
1096.5 -> then it will you know grab all this
1099.98 -> tables, the batting tables, then it will
1102.919 -> go back it will
1105.679 -> it will go to the second link collect
1108.98 -> all the tables and so on. When you click
1111.44 -> on this it will do a sample run for one
1113.84 -> or two matches. But if you want to run
1115.52 -> this collector uh you know for the
1118.22 -> entire data collection, what you can do
1120.5 -> is you can click here and you can say
1122.78 -> initiate manually. So, it will run the
1125.179 -> whole collector. You can also set it on a
1127.22 -> schedule or initiate by API in some
1129.5 -> Python code as well. I am going to show
1131.48 -> you match results execution because it
1133.52 -> doesn't take much time so you click on
1135.26 -> this and in the delivery preferences, you
1137.84 -> know I'm going to type in my email ID
1139.4 -> here. So, it will deliver the data as a
1142.7 -> Json to my email ID.
1151.419 -> All right? So, just say initiate manually,
1155.96 -> start,
1157.76 -> and see this starting now it will run
1160.1 -> internally. It is using smart proxy
1162.32 -> framework and it is going to ESPN
1165.26 -> Cricinfo website grabbing that data and
1168.14 -> once data is ready it would have sent me
1170.72 -> an email. All right! When I check my email,
1172.82 -> I got the match results, and when you
1175.7 -> click on download results
1178.82 -> it would have downloaded this particular
1181.58 -> Json file, and when you look at this Json
1183.679 -> file see I have the entire match summary
1187.4 -> okay? So, this way I ran all the
1190.1 -> collectors and grabbed all the data, and
1192.02 -> I have put that data on GitHub in T20
1195.82 -> Json and CSV file all right? So, this is Json
1199.1 -> files, if you want to directly get the
1201.26 -> data you can get it from here, but I
1203.12 -> highly recommend that you use Bright Data
1205.28 -> for data collection because data
1207.559 -> collection is super important part of
1209.72 -> any data science or data analytics
1211.52 -> project. When you log in make sure you
1213.62 -> are seeing this $15 credit and then you
1215.96 -> can go to data collection, collectors and
1219.14 -> create your first collector by clicking
1221.6 -> on this open IDE. So when you do that, you
1225.679 -> can just say start from scratch you're
1228.14 -> creating a blank collector. You're not
1230.179 -> using any of these templates and when
1232.039 -> you see the JavaScript UI what you will
1235.34 -> do is you will use the code which I have
1238.34 -> provided, you again check video
1240.02 -> description carefully for all the
1242.24 -> download instructions. You will have this
1244.58 -> file, for example T20 World Cup matches
1247.28 -> results.js so open that file and it
1251.059 -> has two sections: interaction code and
1253.1 -> parser code. So, for interaction code I
1255.62 -> can just copy paste this here,
1258.08 -> and you know use that code here. Whereas,
1261.5 -> for the parser code, copy paste just that
1264.799 -> particular portion here in the parser
1267.74 -> code, and that's it! This is your
1269.72 -> collector, it is ready okay, and you can
1271.46 -> run it, verify it, you can just say finish
1274.1 -> editing you can give the name to that
1276.86 -> collector. So, let me just say finish
1279.62 -> editing here. So, it takes few seconds and
1281.9 -> then your new collector is ready. You can
1283.82 -> edit collector name you can call it
1285.559 -> whatever T20 World Cup match summary
1291.74 -> okay? You saved it if you just cancel
1295.94 -> that icon, you will see that collector.
1297.74 -> Now you can run that collector manually.
1300.44 -> If you want to edit the code you can
1302.12 -> once again go inside. So, this way you
1305.36 -> create four different collector. Again, I
1307.76 -> have provided the code to you. If you
1310.58 -> need any help you can click on the help
1312.74 -> button, you can do learning you can watch
1314.6 -> Bright Data tutorials on YouTube as well.
1319.64 -> We are done with web scraping part, and
1322.159 -> the files that we extracted from ESPN
1324.86 -> cricinfo are available in T20 Json files
1329.059 -> folder. Now, if you want to use these
1331.159 -> files readymade check video description
1333.2 -> below you should be able to download
1334.58 -> these files. And if you look at these
1336.799 -> four Json files for example batting
1338.96 -> summary,
1340.1 -> we have this batting summary Json
1343.28 -> element for each match. For example
1345.2 -> Namibia vs Sri Lanka So, there is one
1347.78 -> element in this array. Then the second
1350.12 -> element in this array is UAE Vs
1352.46 -> Netherlands and so on. Now, when we pull
1355.76 -> this data in Power BI it would be
1358.039 -> beneficial if the data is available in
1360.26 -> CSV file, something like this where you
1364.039 -> know it's just a single flat table and
1366.14 -> you have cricket match and the
1368.659 -> corresponding batting score right, and
1371.179 -> then see here also there is UAE and the
1373.58 -> batting score and so on, and here is the
1376.1 -> batting position. So we need to do
1378.919 -> transformation basically. We need to
1380.84 -> transform
1381.98 -> this Json file into this particular CSV
1386.659 -> format. You will also see an additional
1388.94 -> column. For example if the player is out
1391.76 -> or not out in the Json file we did not
1394.58 -> have that information okay? Uh all we had
1397.94 -> was let's say if dismissal is blank that
1401.299 -> means the player was not out. But if the
1403.76 -> dismissal had some string that that
1406.1 -> means the player was out. So, we have to
1408.679 -> do this data transformation and Python
1411.38 -> pandas is probably the best way of
1414.559 -> performing this transformation. If you
1416.84 -> don't know about Python programming
1418.28 -> language, you can go to Codebasics.io
1420.679 -> super affordable, easy Python course for
1423.559 -> total beginners, you can follow that. Then
1425.9 -> for pandas, search Codebasics pandas
1428.179 -> tutorial you find my playlist which is
1430.28 -> very popular, and just watch first you
1433.159 -> know maybe six or seven videos, and
1436.1 -> that's it it will take you less than one
1438.02 -> hour. Assuming you have now some Python
1441.559 -> and Pandas knowledge, now let's start a
1444.799 -> jupyter notebook and work on the
1447.679 -> transformation. I went to my cricket
1449.48 -> analytics folder and launched jupyter
1452.419 -> notebook by running this command and it
1454.7 -> looks like this. See I am at a location
1456.38 -> where T20 CSV files in Json file
1459.679 -> directories are there at the same
1461.179 -> location. I am going to create a new
1464.059 -> Python 3 notebook and import some
1467.539 -> necessary libraries. We are going to use
1469.1 -> pandas and other library called Json and
1472.76 -> then I will open the first file which is
1476.059 -> the match results okay? So I will say
1479.059 -> match results as F and then data is
1482.9 -> equal to in Json you can just say
1485.559 -> json.load file pointer, and it will load
1488.179 -> that data for you. So, let's print what
1489.86 -> kind of data it loads. So here I have the
1492.98 -> match summary, remember the match summary
1495.26 -> table. So, let me show you the Json file
1497.6 -> so that you get an idea.
1499.58 -> So, my match summary is this one where
1504.26 -> basically it's a match uh who won the
1507.44 -> match right? So between these two Namibia
1509.84 -> won the match by this run and so on. And
1512.24 -> if you look at match summary element. See
1514.34 -> it's it's just one element and if you
1516.08 -> look at this array this array also has
1518.179 -> one element
1519.44 -> okay? So, let's look at that element. So,
1523.22 -> first of all data array has only one
1525.679 -> element, you can confirm it by see
1527.96 -> printing just one element, and then
1531.5 -> data 0 and then match
1535.64 -> summary if you print
1537.74 -> that's your main list where you have all
1540.62 -> the match results. So, what I can do is I
1543.62 -> can create a dataframe out of it and I
1546.38 -> will just say df_match is equal to PD
1551.299 -> .
1552.919 -> dataframe
1555.679 -> in the data frame you can supply the
1558.08 -> entire list
1559.34 -> as an array, and if you print
1563.72 -> that head of that dataframe see
1566.659 -> wonderful! So, my dataframe is created
1570.14 -> and I can just quickly check how many
1574.279 -> elements it has and there is a method
1576.679 -> called shape, when you do that it prints
1579.38 -> the shape basically 45 rows and 7
1583.279 -> columns and I'm going to do a few
1587.6 -> processing steps which is let's see, I
1590.299 -> will use uh this scorecard as kind of a
1593.96 -> key of this particular data frame. What I
1596.84 -> mean by that is I want to treat this as
1599.179 -> a match ID so that I can connect with
1602.539 -> other tables because I have other tables
1606.26 -> and when when I import them in Power BI
1609.5 -> I need a way to link them. Sort of like
1612.44 -> primary, foreign key in SQL terms. So, I want to treat this scorecard which is a unique ID
1617.86 -> basically as a primary key for this. So,
1622.7 -> let's uh do that. So, I will just rename
1625.58 -> that column I will just say dfmatch.
1628.94 -> rename
1629.9 -> and how do I want to rename the column?
1632 -> So, I want to say that rename scorecard
1635.36 -> as match ID axis is equal to 1 which
1638.12 -> is you know you have column axis and
1640.4 -> rows axis and when you print head, you
1643.82 -> will see the column is rename. If you're
1645.44 -> not getting this just hold on later on
1647.84 -> you will understand why I am calling it
1650.36 -> a match ID. Now, once I have this
1653.36 -> particular dataframe I want to export
1656.48 -> this data into a CSV file okay, so that
1660.2 -> you know all the data all the data is in
1663.62 -> single CSV with nice columns. But before
1667.279 -> I do that, let me process the batting
1670.58 -> summary. So, the other file that I have is
1674.48 -> batting summary
1676.279 -> okay, so I will say
1679.179 -> batting summary you can add markdown
1683.48 -> columns, markdown rows in the notebook
1687.08 -> and let's see how this one looks like.
1690.799 -> So, batting summary has this particular
1694.1 -> format let's see in the notepad plus
1696.5 -> plus. Where is my batting summary huh? So,
1699.26 -> batting summary first of all the outer
1701.48 -> array has multiple Json objects, you see
1704.659 -> these are all multiple Json objects. If I
1707.24 -> open the first Json object that has a
1710.36 -> element called batting summary. See, it
1712.279 -> has just one element batting summary, and
1715.82 -> in that batting summary there is a score
1718.039 -> of one match. So Namibia Vs Sri Lanka
1720.74 -> see all the players number one player,
1722.84 -> number two player, they are in one
1724.88 -> element and if you close this and open
1727.22 -> the second element okay, you will find UAE
1731.179 -> Vs Netherlands match. So, all these
1733.82 -> matches are presented by one single Json
1736.82 -> element inside my array okay? So now what
1741.08 -> I will do is I will go through that
1743.539 -> those records, so I will say for
1746.799 -> record in data and this each record is
1750.679 -> one match and one match has multiple
1752.9 -> records for the player right? So if I
1755.48 -> print for example record
1759.159 -> batting summary, what I will get is the
1763.76 -> batting summary of one match. So Namibia
1766.159 -> Vs Sri Lanka okay?
1767.779 -> So this, this so I'll get total I
1770.24 -> think 11 records and if you want to just
1773.419 -> append everything in in one array right,
1775.82 -> because our eventual goal folks is to
1779.48 -> get a single list. Basically, I should
1782.36 -> have a single list where all the matches
1784.58 -> are present and if you want to create a
1786.5 -> single list in pandas, what you can do is
1789.38 -> I can create a
1791.48 -> list called all records, and then I can
1795.26 -> just keep on appending. I can just say
1797.12 -> all_records.extend
1799.76 -> and when I say extend, it is just extend is
1803 -> basically you have one array, and you are
1804.799 -> appending another array after that. So,
1808.1 -> let me just show you so let's say you
1809.72 -> have an array called a okay, and if you
1813.32 -> have another array called b, and if you
1816.86 -> say a extend b and if you print
1822.98 -> a you get this. So it's just joining
1826.34 -> those array okay? So similarly here I am
1829.76 -> joining all the records and after I join
1833.779 -> all of them, I can print all records.
1841.159 -> See I got all the records in a single
1844.46 -> flat list. So Namibia Vs Sri Lanka if
1846.86 -> I just scroll down I will see UAE Vs
1849.32 -> Netherlands and so on and from this I
1852.2 -> can create a dataframe
1856.36 -> dataframe like this,
1860.539 -> and when you print
1863.6 -> see
1864.86 -> I get the this is a continuous so if you
1868.1 -> print tail of it you will see the final
1871.1 -> match Pakistan Vs England I don't
1873.2 -> know if you have seen that it was pretty
1875.659 -> interesting match, World Cup final 2022.
1879.44 -> Now, that I have a dataframe ready uh
1884.059 -> let's let me look at I just want to do
1886.82 -> some analysis I'll just print let's say
1888.44 -> first 11 elements
1890.419 -> or so. And see I want to do couple of
1893 -> things here first of all here the
1896.12 -> dismissal column, I want to convert this
1898.46 -> column into out or not out okay? So, I
1901.82 -> want to have a column like this which
1903.32 -> tells me if the player is out or not out.
1905.419 -> And the way you can do that is look at
1907.76 -> the dismissal column and if you don't
1909.86 -> find anything in it, if it is blank, it
1912.38 -> means the player was not out. So, let's
1914.179 -> first do that and how do you do that?
1916.82 -> Well, you can create a new column called
1921.08 -> out or not out
1922.88 -> in pandas just by doing this based on
1926.24 -> the dismissal column. So, my dismissal
1928.52 -> column is this
1930.2 -> okay and on this you can use apply
1934.279 -> method. If you've seen my pandas tutorial
1936.2 -> you will know.
1937.279 -> So you can say on dismissal column apply
1941.299 -> some transformation and create a new
1943.159 -> column called out or not out. So this is
1945.559 -> the new column, this is how we create a
1947.659 -> new column, and on the existing column I
1950.84 -> want to apply some transformation. What
1952.64 -> is that transformation? Well, Lambda x
1954.5 -> Lambda is this is just a short way of
1957.74 -> writing Python function. So, here I am
1960.32 -> going to use ternary operator. So, I'll
1962.6 -> say
1963.679 -> player is out if
1966.62 -> X when I say X you you're getting each
1969.86 -> value from this column okay, so if let's
1971.96 -> say X is this if it is out, if the length
1976.34 -> of X is greater than 0,
1980.179 -> else it is not out
1986.6 -> okay?
1988.399 -> So, I will
1991.82 -> let's see okay
1994.1 -> df is not defined obviously. I am used to
1996.919 -> writing df all the time.
1998.779 -> So, you see uh you have out and not out,
2002.32 -> and if I print few more records you will
2005.2 -> see whenever there is a blank it is not
2007.6 -> out. Otherwise, it is out okay? All right,
2011.019 -> now that I got out not out I don't need
2013.779 -> this dismissal column. So, I can just drop
2016.48 -> that column okay and this is how you
2018.46 -> drop it you will just say drop which
2020.14 -> column you want to drop and in place is
2022.24 -> equal to true. If you don't specify in
2024.22 -> plus is equal to true it will not modify
2026.74 -> that dataframe. It will be a new
2028.299 -> dataframe okay? So, when you run this,
2032.46 -> dismissal is gone,
2034.539 -> and all you have is
2036.88 -> out and not out, and you have another
2039.039 -> column called batsman name which has
2041.2 -> some issues, which is see this kind of
2043.48 -> special characters you have. You want to
2045.399 -> remove this special character and you can
2048.82 -> just simply locate all the special
2051.339 -> characters and then you know apply some
2053.679 -> Lambda function. For example
2056.32 -> you can say dfbatsman.apply this
2060.22 -> you can use regular expression, you can
2062.32 -> use a replace function, you can do n
2065.74 -> number of things. But just to keep things
2068.02 -> simple, I will just uh you know I found
2071.5 -> this as well as there are there are
2073 -> other records where I found this
2074.44 -> character. So I'm just removing them and
2076.899 -> now you see in Kusal Mendisa, uh Mendis
2079.659 -> actually, you don't see let me see,
2083.08 -> you don't see that particular character.
2086.379 -> So, let's see yes see here you don't see
2090.639 -> that extra character.
2093.339 -> All right! Now,
2096.04 -> how do you connect
2098.619 -> this particular dataframe,
2101.619 -> with the match because as I said for our
2105.16 -> visualization purpose later on in Power
2107.08 -> BI we need a way to link all these
2109.119 -> tables. Now, just carefully notice these
2111.88 -> two tables okay? So, this is one table
2115.18 -> that I have
2116.68 -> okay,
2117.82 -> and this is the second table that I have
2120.52 -> I can just use Snipping Tool and just
2122.8 -> kind of take a screenshot of that
2125.68 -> so that you get an idea. So, let's say I
2127.839 -> have this particular table right
2131.32 -> and then I have this another table. So,
2135.339 -> now let's try to match these two. So, I
2137.8 -> want to now connect these two tables. How
2141.28 -> do I do that? See I have Namibia and
2145.119 -> Sri Lanka right? I have team name and
2148.06 -> here I have Namibia Vs Sri Lanka I
2151.24 -> mean that is the only key I have between
2152.98 -> these two tables, so that I can join them
2154.839 -> or I can link them basically because I
2157.599 -> have scorecard here, but I don't have a
2160.3 -> scorecard here in this particular table.
2162.94 -> So though yeah the only thing I have is
2165.04 -> match right? So, here it says Namibia
2167.02 -> Vs Sri Lanka here it says team one
2168.88 -> and team two now I can say maybe take
2173.2 -> team one and then use Vs in the middle
2176.2 -> and then do team two right and that way
2179.14 -> I can join them. But the problem could be
2181.599 -> in in this table the names could be
2183.94 -> reverse right? So here let's say it's
2186.7 -> Netherlands Vs UAE whereas here for
2191.02 -> example
2197.099 -> uh let me print this
2200.98 -> See here I have UAE Vs Netherlands, see
2204.96 -> so if I just simply say Team 1 Vs
2207.94 -> Team 2, it's not gonna work. I have to
2209.92 -> use both the combination team 1 then
2212.56 -> Vs then team 2 then team 2 Vs and
2215.02 -> team 1 so that is the way I can
2217.96 -> connect,
2218.8 -> and for doing that
2220.96 -> I need to go back to this code and
2223.9 -> create
2225.04 -> a kind of like a dictionary okay? So
2228.64 -> dictionary
2230.38 -> like this. So let me just do that here, so
2235.18 -> I want to create a match IDs dictionary
2239.32 -> okay and the dictionary will look
2240.94 -> something like this: So, let's say there
2242.74 -> is Namibia Vs
2247.619 -> Sri Lanka
2250.66 -> okay? So, let's say it looks something
2252.22 -> like this,
2254.2 -> and then
2256 -> I can have maybe a match ID as a value
2258.28 -> right?
2259.54 -> And then
2261.099 -> I can have same thing
2264.3 -> but in the reverse order.
2268.48 -> Why I need this because
2271.78 -> the order is not guaranteed. So I need to
2274.06 -> have both,
2275.32 -> and then I have let's say Netherlands
2277.72 -> Vs UAE correct? So, let's say I have
2281.2 -> this kind of Python dictionary where I
2284.079 -> have Team 1 Vs Team 2, Team 2
2286.66 -> Vs Team 1 and the match ID then that
2289.119 -> is going to be
2290.5 -> helpful. So I I can create that
2293.38 -> dictionary by going through so let me
2297.64 -> just remove this, I think you've got an
2299.32 -> idea or let me put it in the second cell.
2303.16 -> So, I can say for index row in dfmatch
2307.78 -> .iterrows So, there is a function called
2310.24 -> iter rows which will go over each row
2312.94 -> one by one and then every row has
2317.68 -> Team 1 and Team 2
2320.32 -> okay, and you can use that as your key
2325.359 -> one.
2326.5 -> So this will be your key 1 correct,
2329.8 -> Key 1 because see Namibia Vs Sri Lanka
2332.8 -> so I'm creating that by doing this and
2335.38 -> then first doing Sri Lanka Vs
2336.76 -> Namibia you can have key 2
2339.7 -> So Key 2 is nothing but just you know
2343.359 -> you're reversing the order: Team 2
2345.04 -> Vs Team 1 and then you want to add
2348.94 -> that into this dictionary. So, here I will
2351.46 -> say add this into my dictionary key 1
2356.26 -> okay so key 1 is this right and what
2359.14 -> is the value you are adding the match ID,
2361.72 -> so you will say
2363.22 -> row
2367.9 -> match ID
2370.24 -> and you will do the same thing for
2373.839 -> key 2
2376.54 -> and when you look at now match_ids_
2380.079 -> dict
2380.98 -> it looks something like this. See
2383.619 -> every team, their original order, reverse
2386.92 -> order and the corresponding match IDs dict
2389.98 -> Now, you'll be like okay so how do I use
2392.619 -> this dictionary? Well, see okay let's go
2396.04 -> back.
2397.96 -> So, the way you use this dictionary is to
2402.339 -> bring match ID column in this particular
2404.98 -> dataframe. So how do I bring match ID
2406.96 -> column in this particular dataframe?
2408.52 -> Well, this has a match column right? So, I
2411.88 -> can look into my match IDs dictionary.
2415.06 -> So you see if I for this match I want to
2417.579 -> get a match ID how do I get it? So I will
2420.22 -> say match IDs dict and this okay in quote,
2428.92 -> so if you give this see you get the
2431.74 -> match ID!
2433.06 -> So, I can create a new column in this
2435.4 -> dataframe okay, I can create a new
2440.44 -> column in this dataframe call it match
2444.88 -> ID equal to
2453.06 -> batting.
2457 ->
2458.5 -> so I want to apply transformation on
2460.48 -> this match column so I will say on this
2463.72 -> column apply transformation map is sort
2466.78 -> of like is a function similar to uh
2469.54 -> apply and you are going to give this
2472.66 -> mapping. So you are just mapping it
2474.64 -> basically okay, and when you do this you
2478.72 -> get
2479.74 -> match ID. See, now you found a way to link
2482.92 -> these two tables okay? And then you will
2486.16 -> export
2487.54 -> this particular table as is into a CSV
2491.02 -> file, and the way you can export this
2493.78 -> table is by doing this.
2499.66 -> Okay, I have that file open by the way
2501.94 -> that's why. But I'll just say temp.csv
2504.339 -> for example and when I see temp.csv
2508.839 -> see in my
2511.24 -> CSV files folder, see temp.csv
2516.82 -> and it looks something like this: it is
2519.04 -> same file as I was showing before
2520.68 -> basically it is this file okay? Now, in
2525.04 -> the interest of time I'm not going to go
2526.839 -> over the entire transformation for other
2529.18 -> files too because the code can be bigger
2531.64 -> and the tutorial will get so long. So, I'm
2534.28 -> going to share with you the entire
2536.079 -> notebook you can take a look later on.
2538 -> But see here I first process match
2541.48 -> results, then I process batting summary,
2543.88 -> and at every point I am exporting the
2546.64 -> file. So I exported match summary first,
2548.94 -> then I exported the batting summary, and
2553 -> then I exported bowling summary. See
2555.82 -> bowling summary and the player
2557.859 -> information. Now player information the
2560.74 -> name I have given is no images because
2563.02 -> for player I need their image as well. So,
2566.32 -> I have two files like player CSV with no
2569.02 -> images. So let me show you that.
2571.18 -> Let me remove this stamp.csv and see I
2574.72 -> have dim players.csv and no images so no
2577.96 -> image is something that my notebook is
2580.54 -> giving okay, and you can see there is
2583.3 -> player name, there is team, batting style,
2586.3 -> bowling Style
2588.579 -> player role and the description. Some
2591.46 -> players don't have description but some
2593.38 -> players do. So,
2595.3 -> and in this file we have manually added
2598.839 -> their images so we collected their
2601.359 -> images manually,
2602.8 -> and we added it here in dim players.csv
2605.98 -> So, if you open that file you will see an
2608.079 -> extra column okay? So I have dim players
2611.74 -> open looks like already so in that we
2614.26 -> have an extra column called image, and if
2617.5 -> you click on this image you will see the
2620.319 -> player's picture basically right? See if
2623.38 -> you click on any any image
2626.319 -> you will see that particular player's
2629.74 -> image all right? So, I hope you had fun
2633.339 -> and now in the next step we will be
2636.7 -> importing this CSV file into Power BI
2642.94 -> I'm going to launch Power BI desktop. I
2646.24 -> have already installed this application.
2647.56 -> If you don't have this you can just
2649.48 -> YouTube and find the installation
2651.7 -> instruction. So, Power BI desktop click on
2653.92 -> that,
2654.7 -> close this and just say file,
2657.64 -> save as
2659.26 -> you know just go to downloads and just
2661.48 -> give some file name. I will just say T20
2663.64 -> cric
2665.02 -> and then you will go to get data click
2669.04 -> on more and import the entire folder of
2671.68 -> CSV files. Now, if you look at our
2673.619 -> downloads folder, so just check video
2676.06 -> description below I have given the
2678.4 -> instruction to download the CSV files. So,
2681.16 -> these CSV files either you have used
2683.5 -> Bright Data to capture it or you can use
2685.66 -> ready made files which I have given to
2687.64 -> you and here in this folder you see five
2691 -> CSV file. Now for dim players we have two
2693.52 -> versions: one with images, one without
2695.079 -> images. So, I'm going to delete the no
2697.119 -> image CSV file because that's not going
2699.46 -> to be useful, and I will here click on
2702.579 -> folder connect and go to that folder and
2705.819 -> grab all those four files. So, this PC you
2709.24 -> go to downloads T20 CSV file okay, it's
2713.98 -> going to import all those four files. Now,
2716.319 -> here you will click on transform data to
2718.78 -> perform
2719.859 -> data transformation in Power Query. So,
2722.68 -> Power Query is a component inside Power
2724.96 -> BI that allows you to do data
2726.76 -> transformation. Here, right click and say
2729.94 -> duplicate I'll tell you why I'm doing
2731.68 -> that. But go to the first step and then
2734.94 -> click on this binary okay? Now, when you
2738.099 -> click on that
2739.24 -> it's gonna expand that file. So, our first
2742.119 -> file, if you look at the steps on the
2743.74 -> right hand side,
2745 -> see the first file is dim match summary
2747.099 -> and when we clicked on it what it did is
2749.859 -> it expanded that particular file. So, I
2753.46 -> will just call this
2756 -> dim match
2758.56 -> summary,
2760.66 -> and similarly I'll just duplicate
2764.4 -> these raw steps multiple times,
2767.68 -> and then here I will expand dim player.
2770.74 -> So, once again click on this and it's
2772.54 -> going to expand it I will call it dim
2775.42 -> players
2777.819 -> and do similar things for next two files
2787.02 -> okay?
2788.98 ->
2800.859 -> Now, that I have expanded all the files I
2803.2 -> will quickly look at the data and
2804.88 -> perform some transformation. When I'm
2806.319 -> looking at dim players I see it did not
2808.78 -> recognize the column names properly. This
2811.24 -> can happen. So, what you will do is you
2814.599 -> will say go to the transform tab and
2817.599 -> then use first row as headers. So see now
2820.96 -> it is using name, team, image, etc. In the
2823.72 -> previous step if you look at it it did
2826.24 -> not have that right? It was having column
2828.46 -> 1, column 2, etc. and now I said use
2831.16 -> this first row as a header row.
2833.56 -> So, after that it looks something like
2836.319 -> this and when I glance through the data
2839.68 -> I I noticed couple of issues. Number one
2842.14 -> is the player name has this in bracket C,
2845.319 -> this is captain basically. So in the
2847.24 -> cricket scorecard if someone is a
2849.579 -> captain in bracket you will see C. I
2851.8 -> don't need that I just need a player
2853.48 -> name. So, you are going to apply some
2857.14 -> transformation where you'll use extract
2859.18 -> option and you will say text before
2860.92 -> delimiter. So, delimiter is bracket right?
2863.74 -> So, you want to get text before the
2866.2 -> bracket so in this underscore C if you
2869.02 -> get text before this bracket you'll get
2870.94 -> only Shakib Al Hassan. So, you'll say okay
2875.04 -> and you see that C is gone. So in the
2877.599 -> previous step you see Shakib Al hassan in
2880.72 -> bracket C, but in the next one that C is
2883.42 -> gone. It is a usual practice to do data
2887.26 -> trimming after this delimiter step. So
2890.859 -> you will say format and trim and that
2893.26 -> will just in case if there are extra
2895.18 -> spaces it is going to
2897.7 -> remove those.
2899.38 -> One other thing that I do is
2902.859 -> I can sort these values. So if I say sort
2906.64 -> ascending
2908.02 -> and when you just quickly glance through
2911.02 -> these values, you will find some
2912.4 -> duplicates. See Matthew Wade
2914.74 -> the same record due to some reason
2916.98 -> appeared two times, and you want to
2919.3 -> remove this duplicates. In real life you
2922.24 -> will always find this kind of data
2923.98 -> problems okay? So I'm gonna now remove
2927.04 -> sorted rows here and then I will say
2930.22 -> right click and remove duplicate. So, that
2932.14 -> will remove the duplicates value see
2934.42 -> right now the rows is 213 and in the
2938.079 -> previous step we had 219 rows so it
2940.9 -> removed six duplicates. Many times what
2945.04 -> will happen is you are building
2947.56 -> dashboard at that time you will
2949.3 -> encounter issues and then you have to go
2951.819 -> back to Power Query and perform this
2953.92 -> data transformation okay? I kind of knew
2955.96 -> about this steps so I'm doing it but in
2958.66 -> general you will glance through it you
2960.16 -> will sort it you'll do bunch of uh
2962.44 -> things to figure out all these data
2964.3 -> issues. And, now we are done with uh dim
2967.079 -> players uh data transformation. We can
2970.66 -> move to the next one which is dim match
2973.18 -> summary. Here
2975.04 -> when I glance through this data it all
2977.56 -> looks good, the only thing I'm going to
2980.14 -> do here is create a new column called
2982.96 -> stage. Now in T20 cricket any match in
2987.099 -> this particular World Cup of 2022 any
2989.56 -> match that was played before 22nd
2992.2 -> October, was a qualifier match, otherwise
2995.5 -> it was considered to be the Super 12. So,
3000.119 -> let me show you that so the logic here
3003.18 -> that we're going to use is if date is
3007.2 -> less than 22nd October 2022, then
3011.46 -> the match was qualifier okay?
3014.42 -> Qualifier otherwise it was super 12.
3018.839 -> So, I'm going to create a new column
3020.94 -> called stage and it will be a
3022.92 -> conditional column. So, let me just show
3024.42 -> you so that you get an idea. Click on ADD
3026.76 -> column and say
3029.099 -> conditional column and in that
3031.14 -> conditional column you have a match date,
3033.599 -> see match date.
3035.28 -> So
3036.599 -> the new column name by the way is stage
3038.64 -> stage could be qualifier or super 12 and
3042.06 -> if match date is
3045.54 -> before,
3047.7 -> before which date well 22nd October
3050.819 -> so I'll go and say 22nd October okay, I
3054.599 -> just know it it's just a one fact that I
3057.119 -> know and if that is the case then this
3061.26 -> stage was qualifier.
3063.839 -> You know in any tournament there is
3065.339 -> qualifier and then there is a main
3066.78 -> tournament otherwise it is called super
3071.16 -> 12.
3073.2 -> And, when you say okay see you find
3075.66 -> something like this. So this was
3078 -> all of these were qualifier, and then
3080.4 -> then tournament started from here.
3082.7 -> Actually, it's not less than equal to it
3085.14 -> is less than this so I'm just going to
3086.76 -> modify the formula and just hit OK.
3090.059 -> So this is Scotland Zimbabwe was the
3092.579 -> last qualifier match, and then
3095.76 -> uh from next match onwards uh we had a
3099.96 -> main tournament which is super 12. So
3102.24 -> just to summarize I created this new
3104.579 -> stage column here, and then I'm gonna
3107.04 -> change the type to text. So here ABC123
3109.619 -> means text or number. So, I'll just change
3111.96 -> it to only text,
3115.98 -> then the next one is fact bowling
3118.619 -> summary so I go here and then I will
3121.74 -> just rename few columns. For example
3123.72 -> bowling team I can just say team. So
3125.52 -> double click this and just say team okay?
3127.8 -> And then you have things like 0s. So
3130.619 -> I'll just say 0s instead of having
3133.559 -> 0s I I feel zeros is a better column
3138.059 -> name. So, once again you will see that you
3141.24 -> might be renaming a lot of columns. So,
3143.579 -> here I will say fours sixes and so on.
3149.04 -> Now see for calculating
3158.839 -> statistics for bowling performance
3161.819 -> I am gonna do some transformation with
3163.8 -> over. So many times you know you have 2.5
3166.5 -> over if you just 2 over and five balls
3168.599 -> so it is better if I have a column
3170.4 -> called balls, and then if I run then I
3173.339 -> can divide run by balls to get the
3175.14 -> bowling of strike rate and so on
3176.88 -> therefore I will just uh you know create
3180.66 -> a balls column from this,
3183.9 -> and the way you do that is you go to
3185.94 -> overs and then you first split the
3189.24 -> column okay by delimiter, and that
3191.099 -> delimiter is dot. So you'll just say okay
3193.859 -> and it created two columns: overs 1 and
3196.92 -> overs 2. So, for example see 2.5 I I
3200.4 -> previously had 2.5 here
3202.74 -> okay? So, let's see 2.5 so it will now say
3206.52 -> 2 and 5 in one one and second column
3210.24 -> right overs.1 overs.2
3212.64 -> and then here in this column null values
3215.88 -> you can replace with zero right? 4 and
3218.099 -> null is basically 4 over. So this can be
3220.26 -> replaced with 0 and you can just go here
3222.72 -> replace values, null replace that with
3226.559 -> zero okay.
3229.22 -> And now you can add a new custom column
3233.339 -> so you will just say add
3235.14 -> create a custom column call that balls,
3239.7 -> and balls is nothing but overs 1 into 6
3243.359 -> correct?
3245.339 -> So,
3246.78 -> two overs will be how many balls? Two
3248.579 -> into six twelve and then if you have any
3250.44 -> additional ball you add that and that is
3252.24 -> overs 2. So, you insert that and then you
3255.24 -> get this particular formula. So if you
3257.7 -> look at uh different overs here for
3260.76 -> example
3261.78 -> uh
3264.48 -> let's say this is this first one is four
3266.76 -> over so that will be 24 balls correct? So,
3269.28 -> see 24 balls but if you look at this
3271.559 -> particular uh row let's say
3274.92 -> this row is 18 balls, but let's check
3278.099 -> this one
3279.119 -> this is 17 balls. So, 17 balls is 2 over
3282.48 -> and five balls so two or two or is 2
3284.819 -> into 6, 12 and then 5 is 17.
3289.319 -> See 17 here,
3294.18 -> and then let's perform some quick
3295.98 -> transformation in batting summary as
3297.96 -> well. Again, I'm gonna rename all these
3300.66 -> columns fours and sixes
3317.22 -> and I don't like that this column is in
3319.319 -> a text form. So, maybe I can have a simple
3321.839 -> column called out you know I can call this
3324.3 -> column out and if it is out then value
3327.18 -> is 1 otherwise it's 0 okay? So, not out
3331.079 -> is 0. So, how do you do that? So, you can
3334.2 -> just go to transform and say replace
3336.359 -> values, and if the value is not out, out
3340.319 -> is 0 and if the value is out once again
3344.28 -> you can just say replace values.
3346.5 -> So replace values if the value is out
3349.8 -> then that means 0. So, now we got nice
3353.28 -> binary 0 1 type of column.
3358.079 -> Not out is 0 and then out is 1
3361.319 -> actually
3363.3 -> okay? So see
3365.339 -> something like this.
3372.839 -> And by the way this balls column should
3374.64 -> be number. So, I'll just say this is the
3377.94 -> whole number,
3379.98 -> and in batting summary also you need to
3382.2 -> do similar transformation for captain
3384.18 -> where you remove the bracket C text. So,
3387.18 -> once again you click this and you just
3389.94 -> extract text before delimiter bracket
3393.78 -> okay, and you will see see that c thing
3397.079 -> is gone. See Gerhard whatever in bracket C
3400.079 -> and the next one it is gone. So, now we
3402.66 -> are done with our transformation, you can
3405.24 -> go to home close and apply.
3413.339 -> After data transformation, we need to
3415.74 -> look into Data modeling. For that, you can
3418.44 -> go to this particular tab
3420.42 -> and you will see it has already
3422.48 -> established some relationship based on
3425.819 -> column names.
3427.319 -> So, let me just pull fact tables in the
3430.2 -> middle okay?
3431.819 -> So, I am going to just arrange them
3434.46 -> nicely
3435.599 -> and fact tables are basically the the
3438.24 -> transactions and then the dimension
3440.76 -> tables are basically the attributes. So,
3444 -> you can just Google if you want to read
3445.68 -> more about fact dimension table and the
3449.04 -> star schema. So, now you can see that when
3452.94 -> you hover your mouse cursor here based
3455.52 -> on match_id it established
3457.859 -> this link between the two okay? It's like
3460.559 -> one to many see, one to many
3462.3 -> relationship similarly here also based
3465.66 -> on match ID established this
3467.339 -> relationship. Now we will link dim player
3469.44 -> table with this one so here the player
3472.02 -> name is basically bowler name here and
3475.319 -> that thing is called name here okay? So, I
3478.68 -> will left mouse click, drag and drop on
3481.74 -> name here and that will establish a
3484.859 -> relationship. When you hover your mouse
3486.54 -> cursor over here see bowler name and
3488.4 -> name are highlighted you which means
3490.559 -> these two tables are linked through that
3493.079 -> particular column.
3495 -> Same thing here batsman name is
3497.7 -> linked to name here, and that's it our
3500.64 -> data modeling in this case is pretty
3502.619 -> simple.
3503.88 -> Once data modeling is done,
3506.46 -> the next step would be to create DAX
3510 -> measures.
3511.559 -> So, DAX measures are something that we'll
3513.599 -> be using in building the actual visuals
3516.18 -> okay?
3517.02 -> So, for that here I will create a
3520.319 -> category or a folder where I can keep
3522.599 -> all those DAX measures. So, I'll click
3524.819 -> on enter data here and I will call that
3527.76 -> key measures okay, so key measures
3534.359 -> here is this key message 2, just ignore
3536.7 -> that. This is just a category where
3539.339 -> you're going to add all your measures. So
3541.92 -> here I will click on this and I will say
3545.52 -> new measure. Now we need couple of
3547.74 -> measures and I have given an Excel file
3550.079 -> again checked video description. You can
3552.299 -> download it from here I have given a
3554.579 -> complete list of measures that you need
3557.579 -> for this project. So, the first one is
3559.74 -> total runs okay? So,
3562.14 -> it's that one is pretty simple so you
3564.66 -> will say here uh you can click on this
3567.78 -> icon to kind of expand it and Ctrl
3570.119 -> scroll to make it bigger. So, total
3573.96 -> total runs is equal to
3577.2 -> sum of
3585.24 -> total runs is equal to sum of all the
3588.24 -> runs in fact batting summary table
3589.98 -> right? So, here
3592.74 -> fact batting summary
3597.74 -> runs and that's it.
3601.68 -> So, that creates a total runs uh measure.
3605.72 -> This column one is not needed so you can
3608.339 -> right click you can click and delete it.
3611.22 -> So, total runs is one measure that we
3614.52 -> have already created.
3616.26 -> Now,
3619.559 -> let's create the other one so the other
3621.78 -> one that we need is total innings
3625.02 -> batted okay and that one would be
3629.4 -> so once I can click here
3631.98 -> and I'm going to just copy paste that
3634.44 -> formula.
3636.059 -> So Ctrl C Ctrl V
3639.9 -> okay? So, fact batting summary and you're
3643.14 -> getting a count of match IDs and that
3645.119 -> will be the total innings batted.
3648.359 -> Now, what's the purpose of these measures
3650.099 -> exactly, if if you have no idea on DAX,
3653.64 -> etc.
3654.78 -> um I would suggest that you can check my
3657.78 -> uh course on Codebasics.io for Power BI
3661.26 -> where I have explained Power BI pretty
3663.299 -> much in detail with a lot of practical
3666 -> and fun learning where we completed a
3668.94 -> real life project with one and a half
3670.92 -> million records, and the course has
3672.599 -> received amazing reviews. So, go check
3674.52 -> that out I'm gonna go quickly through
3677.28 -> DAX measure creation because this is not
3678.96 -> a Power BI detail course correct? That's
3681.72 -> why. All right! So, let's say I have
3683.579 -> created these two measures and if I want
3686.7 -> to quickly check it what I can do is I
3689.52 -> can pull a player's name here and then
3692.46 -> in that table,
3694.859 -> I can add those measures. So, let's say I
3698.22 -> add total runs for example and I can
3701.52 -> look for a particular player. For example
3703.619 -> my favorite one especially in the last
3706.5 -> series was Suryakumar Yadav and here it
3710.52 -> says he scored 239 runs right? You can
3714.359 -> quickly check if the measure is correct
3716.099 -> or not by opening fact batting summary
3719.819 -> CSV file and when that file is open
3723.78 -> you can create a filter you can go to
3725.579 -> data and filter and you know here in the
3728.339 -> filter you can type in SuryaKumar Yadav.
3731.04 -> So let's say let's say you have a file
3732.9 -> like this you can say
3735.42 -> Suryakumar Yadav,
3737.52 -> and
3739.2 -> if you look at his runs if you if you
3741.42 -> just highlight this you will see 239
3745.14 -> and that's what I have
3747 -> 239
3748.5 -> right? Similarly, you can create other
3750.9 -> measures. So what other measures do we
3753.66 -> have here? So, let's let's check that.
3757.5 -> The other one is total inning dismissed
3760.319 -> okay? And total inning dismissed would be
3764.46 -> let's see.
3768.18 -> So here I'll say new measure,
3774.599 -> total
3777.18 -> innings
3778.92 -> dismissed
3781.26 -> is equal to sum of once again you can do
3785.4 -> Ctrl scroll to see the whole thing
3787.799 -> uh okay batting summary and out.
3795.599 -> So, how many times the player got out,
3798 -> okay total innings dismissed and when
3800.7 -> you pull that here.
3803 -> So, when I say total running dismiss here
3805.559 -> say I'm getting some error and if I
3807.66 -> click on this it says that function sum
3810.48 -> cannot work with value type string which
3812.76 -> means we created this measure based on
3815.099 -> this out column, and out column is not a
3817.26 -> number it looks like. So, you can go click
3820.14 -> here home click on you know transform
3824.76 -> data to go to the Power Query and you
3826.98 -> see the the out column in fact betting
3829.319 -> summary is ABC which means it's text. So
3831.78 -> you can change it to a whole number. So,
3834.54 -> just change it to whole number say close
3837.24 -> and apply,
3840.42 -> and then it will show up fine. So, Aaron
3842.94 -> Finch was out two times and and you can
3845.46 -> see all this uh statistics.
3847.619 -> In the similar fashion you will be
3850.559 -> creating all the rest of the DAX
3853.26 -> measure okay? So, once again this file is
3855.72 -> given to you, you download it, and I want
3858.72 -> you to create all these measures. And
3861.72 -> once you create all these measures it's
3863.46 -> gonna look something like this: See here
3866.579 -> it will look something like this so you
3868.74 -> will by the way create all these
3870.78 -> measures and also group them in these
3874.14 -> kind of folders. So how do you group them?
3875.579 -> So, let me show that so when you have
3878.28 -> these measures let's say these three
3880.079 -> measures right and if you want to group
3882.66 -> them
3883.74 -> uh what you can do is this you can enter
3886.859 -> a display folder here basically, you can
3888.9 -> say batting
3891.299 -> and it will put in a batting folder and
3893.22 -> then you just drag and drop okay? So, you
3896.64 -> drag it here drag it here
3900.66 -> okay? So, this way see you have a nice
3903.24 -> batting folder. So your goal by the way
3905.28 -> this is an exercise for you. Folks this
3907.14 -> is not hard. Don't worry, you can do it!
3909.299 -> Your goal is to create all the measures,
3912.18 -> you know I just showed you two, three
3914.22 -> measures but you have to create all
3916.92 -> these measures on your own, and just put
3918.9 -> them in respective folder. Once, you're
3921.839 -> done creating a measures you have to
3923.94 -> also create some calculated columns.
3927.02 -> Calculated columns is just a jargon.
3929.94 -> Actually, it's nothing but similar to
3932.22 -> Excel formula. So, if you have Excel
3934.2 -> formula for example let's say if I go to
3936.839 -> this CSV file
3938.64 -> and I remove this filter right, so let me
3942.24 -> remove that filter
3943.98 -> I want to know total runs from
3947.16 -> boundaries okay? So let's say boundary
3949.799 -> runs,
3951.78 -> if I want to do that I can use some
3955.98 -> formula in Excel correct? So, whatever
3957.9 -> let's say if you have whatever number of
3960 -> fours,
3961.02 -> into 4 plus whatever number sixes you
3964.68 -> have into six that will be your boundary
3967.859 -> runs correct? And if you drag and drop
3969.599 -> this formula like this, you will see the
3972.599 -> boundary runs. For example this guy
3974.22 -> scored one four and one six so that will
3977.099 -> make it 10 run. Similar to this Excel format
3979.68 -> we are going to create
3981.319 -> calculated column in our DAX. So, let's
3985.319 -> go to our file here and
3989.4 -> and by the way this this visual was just
3991.38 -> for your validation, so you can delete it.
3993.66 -> So, here in the batting summary I will
3996.42 -> create my first calculated column which
3999.599 -> is let's say boundary runs right? So
4001.94 -> boundary runs is this. So, how do you do
4004.4 -> that? So, you can go to this table view
4006.68 -> and you can say new column okay? And this
4011.119 -> new column will be this this is the name
4014.18 -> okay? So, let's say boundary runs
4018.079 -> and that boundary runs is equal to
4023.059 -> see that
4024.859 -> fact batting summary
4028.359 -> fours
4030.2 -> into four plus fact
4033.819 -> batting summary
4036.079 -> sixes
4039.079 -> into six if you have slight bit of Excel
4041.359 -> idea this is pretty straightforward. So,
4043.7 -> you create a new column here once again
4046.039 -> for validation you can look at anything
4049.099 -> here. See like this one for example
4051.859 -> uh this person,
4054.98 -> this person hit
4056.9 -> Pat Cummins two fours, one six, so two
4059.42 -> force is two into four eight, and one six
4062.059 -> is
4062.9 -> eight and six is fourteen, so fourteen
4064.88 -> runs. Pretty straightforward. So, create
4067.099 -> all these three calculated columns and
4070.22 -> once again if you want to look at the
4073.28 -> final of pbix file which I have given
4075.98 -> again check video description you you
4077.96 -> are given all the assets, and that final
4081.74 -> file would have
4084.38 -> see all those measures. So, anything which
4086.42 -> has this symbol is a calculated column.
4088.22 -> So, see it has boundary runs
4091.039 -> okay?
4093.14 -> So, it has pretty much
4095.42 -> everything that you need.
4100.219 -> The visual here correctly represents how
4103.04 -> much attention dashboarding gets, and now
4105.98 -> we are going to start dashboarding for
4108.38 -> our project. When you work as a data
4110.839 -> analyst in any company, a usually
4112.819 -> business managers will provide you some
4115.339 -> kind of rough mock-up with their
4117.199 -> understanding on how they want to see
4118.94 -> the dashboard. So, here they have given
4122.299 -> this image which they can draw on note and
4124.58 -> pen where they want to see different
4127.819 -> tabs for power hitters, anchors, fast
4130.88 -> bowlers. Remember previously we covered
4133.4 -> different criteria for each of these
4135.259 -> categories, and when you select any
4137.48 -> category let's say you select hitters or
4139.279 -> anchors you will see the players in that
4142.04 -> category along with the statistics such
4144.799 -> as their runs, strike rate, betting average,
4147.38 -> etc. And on the right hand side you want
4149.6 -> to have a criteria filter where based on
4152.179 -> our criteria we can see a list of
4155 -> players here and then at the bottom you
4157.04 -> will have some kind of trends for
4159.08 -> various statistics and bottom right
4161.12 -> would be the scatter chart between
4164.54 -> strike rate and batting average. Now, they
4167.9 -> can provide this mock-up in a rough
4169.88 -> format like this or sometimes people use
4172.239 -> PowerPoint or some other tool and they
4174.5 -> will just draw their rough ideas and as
4176.9 -> a data analyst it is our responsibility
4178.94 -> to communicate back. You know
4180.859 -> communication is a very important skill
4182.6 -> when it comes to data analyst career. So,
4185.299 -> we are going to provide you all these
4187.699 -> mock-ups the name of this file is
4191.319 -> mockup.txt which you will find in the
4195.14 -> video description below once again when
4197.06 -> you download all those files you will
4199.64 -> see this file.
4201.199 -> Now, I'm going to take this stage 2.pbix
4204.56 -> file which has all the DAX measures
4207.14 -> created you can also do the same you can
4209.36 -> just get that file and I will start
4212.42 -> building our visual. So, here the first
4218.06 -> thing that we are building is the page
4221.48 -> for power hitters,
4223.64 -> and what I will do is I will go to dim
4226.34 -> player table and grab the name of the
4229.58 -> player and just drag and drop here.
4231.8 -> So it shows me see all the names of
4234.739 -> every single possible player,
4237.14 -> and if you check our mockups we want to
4239.6 -> have certain uh columns in this field
4242.659 -> such as let's say team for example, then
4246.5 -> the batting style
4248.6 -> okay, then the Innings batted so you can
4252.02 -> go to key measures and you can say okay
4254.78 -> innings batted, and then total amount of
4258.08 -> runs that these players made,
4261.14 -> total balls that they faced, strike rate,
4266.3 -> their batting average, and so on.
4279.8 -> And once you have all these columns, you
4282.26 -> want to look at your criteria for
4284.6 -> openers, your power hitters, and here it
4288.199 -> says see their batting average should be
4290.3 -> greater than 30, strike rate should be
4292.58 -> greater than 140. So, now you will use
4295.34 -> this filter tab to filter those players
4298.76 -> because this list is showing all the
4300.86 -> players right? You want your batting
4304.76 -> average to be greater than 30, so I can
4308.179 -> say batting average should be greater
4310.159 -> than
4311.48 -> 30 apply filter and it will see filter
4314.42 -> all those players. Then you want a strike
4318.86 -> rate to be greater than 140, so I will go
4322.4 -> to strike rate and say is strike rate is
4327.26 -> greater than 140.
4332.96 -> So, strike rate greater than 140.
4334.64 -> Innings batted greater than 3, and
4337.219 -> boundary percentage is greater than 50. So,
4339.92 -> innings batted
4342.679 -> uh where is it okay innings that it
4346.94 -> should be greater than 3,
4350.3 -> and then
4353.719 -> boundary percentage greater than 50. So
4356.36 -> boundary percentage is greater than 50. 50
4359.3 -> percent is 0.5 right so that
4363.98 -> is greater than
4366.44 -> apply filter,
4368.12 -> and then the last one is betting
4371.659 -> position should be less than four.
4373.82 -> So, in whatever matches they played their
4376.76 -> batting position should be in in the
4378.5 -> opening somewhere. So, it is less than
4381.86 -> four.
4384.02 -> And when you apply all this criteria you
4386.659 -> see a nice list of players who can be a
4389.84 -> your potential power hitter in your
4391.88 -> final 11 team.
4394.94 -> You can also do some you know
4397.64 -> visualization related changes. For
4399.26 -> example total runs I want to see them as
4402.38 -> a bar chart, like a horizontal bar chart.
4404.3 -> So you can now go to visualization tab
4407.719 -> you can say total runs I want to do
4409.94 -> conditional formatting and I want to
4412.46 -> display the data bar charts, and the bar
4415.159 -> charts looks something like this. You can
4417.38 -> sort these columns as well by the way. So,
4419.9 -> if you click on it you can see the
4422.48 -> player with highest runs. We all know Jos
4425.78 -> Buttler I still remember their inning
4427.76 -> with India, Joe Butler and Alex Hales just
4431.36 -> killed it in the semi-finals.
4433.4 -> So, you see they have
4435.14 -> pretty good runs, uh strike rate, and so
4438.38 -> on. Now, folks building the whole
4440.239 -> dashboard is few hours of process, and I
4443 -> don't want to waste your time just going
4445.34 -> over all of that. So, I'm just going to
4448.34 -> show you
4449.42 -> a stage 3 file. So, once again whatever
4452 -> files you have downloaded
4454.1 -> okay video description check it, you will
4456.92 -> find this file called stage 3 and that
4459.86 -> has all the raw visuals created. So, you
4463.159 -> know you will have a page for power
4464.9 -> hitters for example, then you will have a
4467.3 -> page for anchors middle order okay, and how
4470.6 -> do you create this page? Well when you go
4472.219 -> to here this will be page one, so you you
4475.04 -> say okay power hitters or openers and
4477.92 -> then you create a new page and you
4479.659 -> create a new page for anchors or middle
4482.12 -> order right? So, anchors middle order use
4484.58 -> you just type double click and type in
4486.32 -> it. Anchors
4487.76 -> middle order and then you drag and drop
4490.4 -> and start building the visuals here. And
4492.92 -> when you build the visuals in the raw
4495.38 -> format, ultimately they will look
4497.6 -> something like this okay now if you are
4500.54 -> once again new to Power BI and you don't
4503.96 -> know the basics of these visuals, what you
4507.5 -> can do is you can go to Codebasics.
4509.78 -> io and just take our Power BI course.
4512.719 -> It's
4513.92 -> it covers all of those Concepts pretty
4517.46 -> much in detail. But for this video,
4520.46 -> I'm going to give you this stage 3 files
4523.1 -> so that you can check various properties
4526.04 -> of the visual in case you don't know how
4528.44 -> to build it. So, when you click on it uh
4530.659 -> see here it will show you what kind of
4532.58 -> visual it is. So, this one is a card
4534.32 -> visual and if you want to look at the
4536.54 -> formatting for example then you can just
4538.82 -> go click here and you can look at
4541.219 -> various you know properties. So, we are
4544.04 -> going to assume that you have built all
4546.26 -> these raw visuals and now it is time to
4548.54 -> beautify them, you know to make them look
4550.4 -> good and kind of connect different
4552.08 -> pieces. Once you beautify your dashboard
4554.42 -> it's gonna look something like this. Now
4556.94 -> this is what we have built but you can
4559.219 -> build it as per your own preference for
4562.1 -> colors and different visual behavior. We
4564.98 -> have provided you all the dashboarding
4567.199 -> tips here which you can use to build a
4569.719 -> dashboard. See, I'm not going to spoon
4571.88 -> feed you because when you go work in the
4573.8 -> industry,
4574.699 -> it becomes essential that you use your
4577.46 -> Googling skills to figure things out. If
4580.34 -> you are trying to change a color of some
4581.78 -> visuals okay, uh you can just Google it.
4584.54 -> Googling is an art that can be
4587.239 -> tremendously helpful and this is a
4589.28 -> unique opportunity for you to use that
4591.8 -> art to learn certain things on your own
4594.199 -> while we are providing You full
4596.3 -> assistance. So, read dashboarding tips and
4599.12 -> then try to make the entire dashboard
4601.28 -> look pretty good. In our Power BI course
4603.8 -> also, we have an entire chapter on
4606.08 -> designing an effective dashboard. Now
4609.38 -> you'll be glad to know that this
4612.14 -> particular dashboard is designed by one
4614.42 -> of our students. So, he took our Power BI
4616.82 -> course, his name is Ashish Babaria. He
4619.34 -> also participates in our Codebasic.
4622.1 -> io resume project challenges. So, if you
4624.44 -> go to the website to resume a project
4625.94 -> challenges which are free for everyone
4627.26 -> to participate, he has won our first
4630.56 -> prize in two challenges, and if you click
4633.56 -> on this LinkedIn icon you will see his
4635.78 -> post here where he builds beautiful
4639.14 -> beautiful dashboards. Now Ashish's
4641.78 -> background if you check it he's a trade
4643.58 -> agro specialist. So, he comes from a
4645.56 -> non-technical background. He learned
4647.9 -> Power BI. Look at his background, he's
4650.179 -> trade agro specialist. So, he doesn't
4652.1 -> have formal training on data analytics,
4654.08 -> etc. He learned Power BI mainly from Code
4656.36 -> basics channel and various other
4657.8 -> resources, and by participating in resume
4660.14 -> project challenges we were able to
4663.02 -> spot his challenge and he is now working
4666.62 -> with us as a freelancer, and he's helping
4668.659 -> us with all these projects. So, look at the
4670.58 -> quality of and professionalism of this
4673.04 -> dashboard. He learned things on his own
4675.62 -> at a later part of his career, and you
4678.679 -> can become like Ashish too. Now, you can
4681.8 -> click on various player categories. So, in
4685.4 -> the power hitters you want to have few
4687.38 -> players from this particular list, and if
4690.08 -> you look at the the filter criteria see
4692.84 -> this is all the filter criteria that we
4695.239 -> had. Now, look at the filter criteria for
4698.42 -> example for fast bowlers right? So, in
4702.26 -> fast bowlers you want to have bowling
4704.659 -> economy to be less than seven and they
4706.58 -> should be taking uh wicket every 16
4709.58 -> balls. So, if you go to our fast bowlers
4712.76 -> control click on that and if you click
4715.52 -> on this visual, you will see all the
4718.58 -> filters that we have okay? So see, bowling
4722.239 -> strike rate is less than 16, dot ball is
4726.14 -> greater than 40%, and so on. So, you
4728.6 -> see all those uh details here, and if you
4731.719 -> want to modify any criteria it's super
4733.88 -> easy. You just go here type in and you
4736.219 -> can play with uh different things, and in
4739.4 -> the next part of this uh session what
4743.239 -> we're going to do is invite Tony Sharma
4745.52 -> who is a subject matter expert and in
4748.04 -> charge of this project. He will help us
4750.58 -> decide the final 11. So, if you control
4753.38 -> click on it see we have our final 11
4756.739 -> almost decided. But you can modify
4759.56 -> certain criteria, substitute different
4761.42 -> players and if you look at this team if
4763.76 -> you know a cricket just look at this
4765.679 -> team. It looks pretty solid like
4767.96 -> unbeatable team. So see, Power BI data
4771.62 -> analytics can help you generate data
4774.92 -> driven insights uh that can make a huge
4777.56 -> difference in the problem that you are
4779.3 -> trying to solve. We are going to provide
4781.159 -> you this final file also so if you're if
4783.8 -> you have a question on some visual
4785.3 -> behavior, you can click on it and you can
4787.64 -> you know check or the different visuals
4790.699 -> that we have. You can look at format and
4793.94 -> their you know various properties that
4796.4 -> these elements are having and I will
4798.44 -> quickly play a time lapse view so that
4800.78 -> you you have some idea on how this
4803.179 -> visual was built.
4806.75 -> [Music]
4822.61 -> [Music]
4837.4 -> thank you
4838.55 -> [Music]
4856.219 -> So, Nick we are just few minutes away
4858.56 -> from saving the world. How does this
4861.32 -> dashboard look?
4862.719 -> Dashboard looks amazing! But can you show
4865.52 -> me the best 11?
4867.26 -> Not yet. We are getting there just give
4869.48 -> me a few minutes. Let me explain how we've done this. So, in the previous session we had, I
4874.34 -> explained what are the parameters I'm using
4877.699 -> right and now you can see this
4879.26 -> parameters come into action, coming come
4881.239 -> live. So, this is how I've created the
4883.4 -> parameters. You can see how I filter the
4885.14 -> place for the openers, these are the
4886.82 -> power hitters and uh you know I also
4889.82 -> have like a solid graph of them like to
4892.64 -> understand their consistency, to
4894.199 -> understand their playing trend, and all
4895.64 -> of that and I also have a scatter plot
4897.86 -> to show
4898.88 -> how their batting average fairs their
4901.219 -> strike rate. So, you can see these are the
4903.5 -> players I've got here correct? So, these
4906.26 -> players will be able to strike ball at
4910.4 -> around you go I have players you can
4911.96 -> strike ball at 160, 170 even close to
4914.179 -> 170, at the same time give me an average
4916.34 -> of 35.
4917.9 -> You can see that, and Jos Buttler here
4919.82 -> gives me the highest average. But he's is a
4922.52 -> good striker as well. He strikes at
4924.26 -> 140 plus which is which fits our
4926.12 -> parameter. So, you can see that these
4928.159 -> players are there. So, out of these players
4931.04 -> I'm going to select Jos Buttler because
4934.28 -> you can see he's consistent all the
4937.88 -> matches, he has played all the matches
4939.739 -> pretty decently, and he's a good Wicket
4942.5 -> keeper as well. So, we need a wicket
4944.36 -> keeper. So, he's gonna be a wicket keeper
4946.159 -> batter,
4947.239 -> and his partner Alex Hales is a good
4949.58 -> choice, he's a good choice of a second
4951.199 -> opener.
4952.28 -> But again he is not consistent in all
4954.5 -> the matches. Also I need a left hand
4957.199 -> combination with a better strike rate. So,
4959.48 -> I'm going to choose Rilee Russouw from
4962.48 -> South Africa. He's a better option for me.
4964.699 -> He has a you know he can strike ball
4967.04 -> like crazy. I can show you the combined
4970.1 -> uh you know the performance of these both,
4972.199 -> I'm just selecting these both. So if these
4974.3 -> two players play together, Rilee Russouw and Jos Buttler
4977.199 -> if they play together, they will give us
4980.36 -> 40 runs in average at a strike rate of
4982.88 -> 150 plus.
4984.02 -> So, if they too bat without losing a
4986.84 -> wicket
4987.92 -> so we'll hit our Target of 180.
4990.44 -> If they bat 120 balls they will give us
4992.659 -> 180 runs.
4994.46 -> And they will stand at least for four
4997.34 -> overs on an average because the average
4999.38 -> ball spaced you can see it's 23.9,
5002.08 -> and they score runs at 60% in
5005.26 -> boundaries which is so so perfect to
5008.08 -> what we need.
5009.28 -> You can see the consistency is is pretty
5011.98 -> much there, it's it's dropping here and
5013.78 -> there but but they are you know they
5015.58 -> together as a package will give us what
5018.159 -> we need. I love this feature that you can
5020.62 -> select two players and see their
5022.659 -> statistics uh on average basis because
5025.659 -> this way let's say if these two players
5027.34 -> are playing and if I have questions on
5029.44 -> their partnership statistics, I can get
5033.04 -> the view of those numbers easily here. It
5035.8 -> is not exactly like a partnership but it
5037.6 -> will give you their combined performance.
5039.699 -> Got it! I got the point!
5042.4 -> Yes and uh so I'm also going to select
5046.42 -> Alex Hales just as my reserve opener.
5050.199 -> So, I'm going to select three players for
5052 -> this position potentially.
5053.8 -> But
5055.36 -> the the what the two I'm going to play
5056.98 -> is Jos Buttler and Rilee Rossouw. All right!
5059.14 -> Let's move to the anchors where we'll be
5060.699 -> select three players here
5062.44 -> again you can see the filters I applied
5064.9 -> on this data: batting average, strike rate,
5067.179 -> innings batted, exactly like we
5069.58 -> discussed right?
5071.26 -> Here the interesting part is um
5074.08 -> we have Virat Kohli on the top with most
5077.14 -> runs and then follows Suryakumar
5079.179 -> Yadav. So, let's check into this chart the
5081.58 -> scatter plot.
5082.78 -> Virat Kohli is clearly the winner
5084.219 -> because he gives us a lot of runs,
5086.14 -> he's a run machine we definitely need to
5088.78 -> pick him and the second player could be
5091.239 -> I couldn't think anything better than
5093.1 -> Suryakumar Yadav because you can see his average is
5096.4 -> 60. He could give us 60 runs on an
5099.82 -> average and he's striking at 190. This
5103 -> is the best we have in the team.
5104.98 -> So, even
5106.719 -> our openers did not score runs at a good
5109.3 -> strike rate this guy can come and
5111.46 -> propel the score.
5112.9 -> So we need him in the team for sure and
5116.14 -> these two players are solid they have a
5118.48 -> good partnership, it's a great idea to
5120.159 -> play them together. So, for my fifth
5121.96 -> position I'm gonna go with
5125.14 -> the three options have is like Lorcan
5127.659 -> Tucker, Glenn Phillips and Daryl Mitchell.
5130.9 -> So, I'm based on the statistics, based on
5134.32 -> the averages,
5135.64 -> it's easy for me to choose Glenn
5138.4 -> Phillips.
5139.659 -> So, even though he has a strike rate of
5142.54 -> 160,
5144.34 -> which is which is really high for the
5146.08 -> position, he scores at an average of 40.
5148.78 -> So, that's the reason I go for this he's
5150.46 -> clearly my number five. Okay. Right.
5153.219 -> And uh
5154.659 -> let's move on to the next one.
5156.52 -> So this is going to get slightly tricky
5158.739 -> because I have many players in this
5161.08 -> position uh you know whom we can pick. So
5164.86 -> like I said I'm looking for a batting
5167.08 -> all rounder here and that batting all
5169.84 -> rounder there could be uh you know
5172.06 -> batsman who can score runs at a very
5173.92 -> high strike rate, at the same time anchor
5176.44 -> the innings, or you know that this person
5179.08 -> can be a fast bowler or a spinner as
5181.84 -> well. In order to you know justify my
5184.48 -> selection let me come back to this place
5186.159 -> again. But like and I will go to my I'll
5188.62 -> go to select my specialist fast bowlers first. So, that
5191.08 -> it becomes very easy for me whether I
5192.82 -> need a fast bowler in the position or
5195.34 -> whether whether at all I need a bowler
5196.9 -> at all in the position.
5198.219 -> If I need a good bowler or a good
5199.9 -> batsman in that position, so I need I
5201.34 -> will select my fast bowlers first.
5203.139 -> So, here my selection is super super super easy.
5206.26 -> I'm I'm gonna select this guy: Sam Curran.
5210.04 -> You can see his economy is 6.53,
5213.76 -> and his bowling average is 11.38 which
5216.46 -> means he gets a wicket for every 11 runs
5219.1 -> that he provides, and his bowling strike
5222.52 -> rate is also staggering. He gets a wicket
5225.04 -> for every ten and a half balls which means if
5227.32 -> he balls the full four overs we are
5229.54 -> definitely getting two wickets. And look
5231.46 -> at this guy
5232.659 -> he has got 11 wickets at an economy
5235.239 -> currency economy of 5.37,
5237.639 -> he gives less than six runs in over. We
5239.8 -> definitely need him on our team and he's
5241.719 -> a fast bowler
5243.1 -> and he picks wickets in less than 10
5245.139 -> balls. So, these two are definitely in our
5247.179 -> team. And of course Shaheen Shah Afridi, how
5250.42 -> can we ignore him? The kind of player is
5252.94 -> is a left arm fast bowler and he can
5256.9 -> really rattle the batsman.
5259.719 -> He's one of my favorite!
5261.82 -> Yeah so you're picking this three. Tim
5264.28 -> Southee is good but if I have to pick
5266.139 -> three I'm just gonna be just three.
5268.3 -> So, these are the parameters I've applied
5270.1 -> here you can see that uh you know,
5272.44 -> innings bowled, bowling strike rate, bowling
5275.38 -> average exactly like we discussed in the
5277.3 -> parameter session.
5279.88 -> So, let's see the combined performance
5281.5 -> together just to get an idea. Sam Curran,
5283.659 -> Anrich Nortje,
5285.82 -> Shaheen Shah Afridi.
5288.04 -> You can see these guys will pick a
5290.739 -> wicket for every 11 runs they give, which
5292.48 -> means if these three bowl all the 20
5294.219 -> overs they will get the full team all
5296.56 -> out for 110 runs, 113 runs and they
5300.699 -> will get a wicket every 11 balls. If the
5303.699 -> bowl all the 20 overs, the team is all out.
5307.659 -> And they imagine they're bowling first
5310.36 -> three or four overs, they will let's say
5312.58 -> if these players they they ball first
5315.639 -> six over, how many Wicket they will take?
5318.34 -> If they bowl the first six overs they
5320.139 -> will pick a wicket for every 12 balls,
5321.58 -> six overs is 36 so they will pick at
5323.8 -> least three wickets that's that's on
5325.179 -> average. That would be awesome! If you
5327.04 -> pick three wickets in the power play!
5330.1 -> That's gonna be amazing! They'll
5331.6 -> definitely scalp the top three, they will
5333.46 -> open the middle order for us.
5335.86 -> And uh look at the economy the combined
5339.52 -> economy is six which means if they bowl
5342.159 -> the first six overs they will be just
5343.84 -> giving 36 runs, and the dot ball they
5346.659 -> produce is close to 50 percent which
5348.4 -> means if they bowl all the 20 overs
5350.199 -> the batsman is able to score only the
5352.36 -> half of the overs, like only the 10 overs
5354.46 -> the rest of the 10 hours they're scoring
5356.86 -> nothing, it's a dot ball. These three are
5359.98 -> the major strength to our team. All right,
5362.62 -> so let me come to the all-rounders now
5364.659 -> before I go to the finisher row.
5366.58 -> So, we have three solid fast bowlers. So, in
5370.48 -> my all-rounder I'm going to have the
5372.88 -> spin element,
5374.02 -> but at the same time I want these two
5375.88 -> players to bat as well, at a
5378.1 -> higher strike rate. So, that's the reason
5380.56 -> as I explained earlier I've kept the
5382.6 -> strike rate parameter as 140. If I don't
5385.06 -> consider the strike rate let's say if I
5386.679 -> get the strike rate is 100, I'm gonna get
5388.42 -> more players like even I get Ben
5390.34 -> Stokes here. But I'm considering strike
5393.4 -> rate 140. Oh got it! I was expecting to
5396.58 -> see Ben Stokes. Now, I know why he's not
5398.56 -> showing up. Yeah, yeah I will explain why
5400.84 -> Ben Stokes is not here in the other page
5403.36 -> as well because I wanted him at that, I
5405.04 -> wanted him at that role earlier.
5407.02 -> So, you can see from this graph Rashid
5410.32 -> Khan is really good in terms of uh you
5412.96 -> know the bowling strike rate,
5414.82 -> I mean I can't say it's really good
5416.739 -> because bowling strike rate should be
5417.94 -> lesser right, it's it's not good and uh
5421.239 -> you have Sikandar Raza
5423.699 -> who has the economy we kind of finding
5426.04 -> people in the zone this this zone is the
5428.02 -> best zone, who has the lesser economy and
5430.06 -> lesser bowling strike right. So Shadab
5432.1 -> Khan is really the winner.
5433.54 -> He definitely deserves a spot because
5436.06 -> you can see his performance, he's quite
5438.34 -> consistent as well. You know his bowling
5440.38 -> average is good whenever he got a chance
5442.06 -> to bat he has batted well as well this
5443.679 -> is his bowling and batting performance
5445 -> it's of high consistency. But Shadab
5447.76 -> Khan
5448.719 -> can I play him at number seven?
5450.76 -> I'm not sure because if my number six
5453.219 -> did not bat well I want someone more
5455.5 -> capable to bat at number seven. So, I
5457.719 -> would play Shadab Khan at number eight.
5459.28 -> But then at number seven I would play
5462.159 -> Sikandar Raza. This is the person I'm
5464.44 -> going to play at number seven because
5466.9 -> look at the strike rate it's 147 and he
5469.84 -> also has a very high average batting
5471.46 -> average of 27 runs. For a number seven
5474.04 -> he normally played number five or number
5476.02 -> four but for number seven if you have
5477.82 -> this kind of an average it's great with
5479.5 -> this strike rate. So, that's that's going
5481.78 -> to be my number seven, and number eight
5483.82 -> I've got my 9 10 11 as well. So, I just
5487.3 -> need to select my number six.
5490 -> So, again choosing this position is
5492.04 -> slightly difficult I would show you why
5494.139 -> uh
5495.76 -> you know let me take out the filter from
5498.46 -> this diagram right?
5500.32 -> You would see that I also have Ben
5502.48 -> Stokes here
5503.92 -> So, Ben Stokes could not make this list
5506.32 -> because his strike rate was too low in
5508.3 -> the series. His strike rate was just 105.
5510.52 -> If the batsman is scoring just run a
5512.38 -> ball we cannot have them in the number
5513.58 -> six because this position might require
5515.62 -> to hit
5516.76 -> like crazy.
5518.08 -> So, that's the reason Ben Stokes might
5520.239 -> not find this place
5521.679 -> so I'm going to say it's greater than
5523.06 -> 130.
5530.08 -> And again if I have to say that um whom
5536.02 -> I'm gonna pick from here. So, we have
5537.94 -> three fast bowler, two spinners. Glenn
5540.159 -> Maxwell looks like a good option. But
5541.6 -> he's a spinner again. I'm not sure
5543.58 -> whether my sixth bowling option should
5545.38 -> be a spinner. But his bowling average is
5547.84 -> good uh you can see his bowling is
5550.3 -> economy is six, uh he is is that is
5553.06 -> bowling uh strike rate is 6.33, which
5555.159 -> means he has got a wicket almost every
5556.48 -> six balls. So, he is one of my options. My
5559.12 -> other option is Marcus Stoinis. I'm gonna
5561.94 -> play with this guy. His bowling average is
5565.12 -> not that good, his economy is not that
5567.1 -> good, but he's a good striker of the ball
5569.08 -> and he's someone I can also trust to
5571.48 -> anchor the game.
5572.739 -> So, I could I could go for Marcus Stoinis
5575.02 -> if I'm if I want a better batsman with
5577.12 -> high striking rate or if I want someone
5579.52 -> more balanced, I could go with Hardik
5581.56 -> Pandya. So, this guy
5583.659 -> will give you a good batting average but
5585.76 -> his strike rate is also not not that
5587.5 -> great, and his consistency is also not
5589.3 -> that good in this world cup. But his
5590.86 -> bowling is good if I really need the
5592.9 -> sixth bowling option I would go for Hardik
5594.82 -> Pandya. But the kind of bowlers that I
5596.679 -> have Shaheen Shah Afridi, Sam Curran
5599.62 -> and Anrich Nortje and all those players I
5601.84 -> don't think I would need Hardik Pandya
5603.82 -> in my team. Then I will go for Marcus
5605.739 -> Stoinis.
5606.82 -> So,
5608.139 -> I will make my decision easier by
5610 -> showing the final eleven right? So, if I go
5612.28 -> to the final eleven,
5613.78 -> I've already picked the top 11 like I
5616.12 -> say right? So you can see this is our
5618.76 -> batting 11. Josh Buttler, Rilee Russouw
5621.4 -> will be opening the game, Virat Kohli
5624.159 -> followed by Suryakumar Yadav, Glenn
5626.139 -> Phillips and in this number six I've
5628.9 -> selected here Hardik Pandya. But I want
5631.9 -> to go with let's say uh Marcus Stoinis.
5638.08 -> You can see the combined performance of
5639.94 -> the team batting average is 37.76, the
5643.3 -> team on average cost 37 runs, strike rate
5645.699 -> is 150.
5647.44 -> You know all the facts, it's given here.
5649.84 -> But if I choose Marcus Stoinis since my
5652.78 -> sixth batting position should increase
5655.239 -> the batting strength I'm focusing more
5657.639 -> on the batting strength now because our
5658.78 -> bowling is already great,
5660.88 -> I'm selecting Marcus Stoinis
5663.34 -> and removing Hardik Pandya you would see
5669.76 -> my batting average improved from 37 to
5672.04 -> 39.6, and my strike rate improved from
5674.38 -> 151 to 154.4. So, this is the reason I
5677.679 -> would go for Marcus Stoinis. But I can
5680.02 -> also go for Maxwell right? You can see
5682.54 -> that the uh you know the performance of
5684.4 -> Maxwell and Marcus Stoinis is a very much
5686.08 -> comparable. They have, they have a very
5687.88 -> similar strike rate, almost very close,
5689.8 -> and uh Maxwell has bowled well. He has picked up
5692.92 -> wickets well. But he's a spin bowler, he's
5695.139 -> a right arm off break bowler. So, since
5698.5 -> I wouldn't need my sixth b owling option as
5700.6 -> someone who can you know who can bowl
5702.4 -> pace. I'm going for Marcus Stoinis.
5705.34 -> But on a given day we will still have
5708.82 -> options you can still choose Glenn
5710.62 -> Maxwell on a given day depending upon
5712.06 -> the pitch, if the sixth bowling option
5713.679 -> can be a spinner, then my second option
5715.659 -> is Maxwell. Uh if I need someone more in
5719.32 -> the bowling side, if if some of our fast
5721.06 -> bowlers get injured then I would choose
5723.159 -> Hardik Pandya for number six. So, I would
5725.44 -> keep all these three options open. But
5727.179 -> right now my team in the final 11, I
5729.639 -> would have
5730.84 -> uh Marcus Stoinis,
5733.3 -> and uh in the opening I would go for
5736 -> Rilee Russouw, but if you want Alex Hales
5738.699 -> he is also available for selection. Got
5740.8 -> it just yeah this list I am feeling
5744.699 -> super excited anyone who is following
5746.56 -> cricket
5747.58 -> if they look at this list of players,
5749.86 -> they will be like this team is
5751.54 -> unbeatable. This is the best team that we have got
5754.239 -> on our planet and I'm sure
5756.159 -> you would win this game and save our
5758.56 -> planet.
5759.52 -> So, Tony this team is great but I know
5762.219 -> that Mitchell Starc is a pretty good
5763.78 -> fast bowler from Australia. Can you tell
5765.88 -> me why he's not in the final 11?
5768.639 -> Sure I think he must have not made our
5770.38 -> standards. Let me check I'm pretty sure
5772.84 -> he's there but he didn't meet our
5774.28 -> standards. So, I think
5776.5 -> um if you recall it correctly
5779.08 -> maybe his bowling strike rate is
5781.179 -> definitely not under 16. So, let me take
5783.28 -> this out and uh maybe he didn't bowl
5787.06 -> dot balls like we want and this bowling
5790.78 -> average might not be less than 20, I
5792.76 -> should remove that as well and his
5794.199 -> economy is definitely not less than
5796.179 -> seven. Let me take that out
5798.159 -> and let me see if we can have him in the
5801.159 -> 11 don't think we have him yet. So maybe
5804.4 -> he didn't even uh play the four innings
5806.62 -> yeah you could find him here now Mitchell
5808.78 -> Starc,
5809.86 -> You can see his economy is 8.5 which is
5812.38 -> more than uh you know seven his bowling
5814.54 -> average is 34, his bowling strike rate is 24.
5817.239 -> So, that's the reason why he's not there
5819.46 -> and he has also played bowled just three
5821.679 -> innings. We wanted at least four innings.
5823.78 -> Yeah. That's the reason. All right, it's
5826.06 -> clear now.
5827.56 -> Okay, here's your final 11 Nick. Go get
5831.219 -> us the cup
5832.239 -> and save the planet.
5834.04 -> The future of this planet is focused on
5837.46 -> these 11 players.
5840.1 -> They are traveling to the wilderness
5843.88 -> out in the dark,
5846.159 -> to bring us light.
5849.58 -> And may we all,
5851.82 -> citizens of data hope and pray
5855.48 -> our analysis and insights shall work. Defeat
5860.62 -> the Sportans and bring us glory!
5864.77 -> [Music]
5870.4 -> Three weeks later! You defeat us in
5873.52 -> cricket, you get Earth!
5877.179 -> If you lose join me as an intern. Join me as an intern.
5886.12 -> Now comes the most interesting part of
5888.46 -> this entire project series, which is an
5890.56 -> exercise and by working on this exercise
5893.199 -> you will be able to win an exciting
5895.36 -> prize which is 20% scholarship on one of
5898.9 -> our premium courses on Codebasics.
5901.3 -> io For exercise what you need to do is
5904 -> number one in the tooltip for players
5906.94 -> you are seeing let's say if it is Surya
5909.1 -> Kumar Yadav you are seeing India Vs
5911.02 -> Pakistan, India Vs whatever team, you
5914.139 -> all know he is from India. So, you need to
5916.719 -> remove that IND and just have Vs
5919.6 -> Pakistan, Vs Sri Lanka. So, you need to
5922.36 -> update that tooltip that is exercise
5923.98 -> number one. Second one is you have to
5926.86 -> update the visual look and feel of the
5928.96 -> entire dashboard. So you can change
5930.46 -> colors, the placement you know different
5933.34 -> visual aspects of the entire dashboard.
5936.1 -> So come up with your own design and
5939.58 -> colors. Number three is providing some
5942.219 -> more insights. So, whatever we have
5943.84 -> covered in dashboard in addition to that
5946.179 -> try to add more insights and then once
5949.42 -> you have that dashboard created, you can
5951.58 -> write a nice LinkedIn post and tag me,
5954.639 -> Hemanand and add following particular
5957.52 -> hashtag so that you we know that you
5959.62 -> have submitted this. We are going to
5961.6 -> provide some sample LinkedIn Post in the
5963.88 -> description below. These are for resume
5965.44 -> projects. But basically you can write
5967.6 -> nice post upload your uh project on Novi
5971.32 -> Pro or maybe just short a simple video
5973.36 -> and make a LinkedIn post on it I wish
5976.9 -> you all the best and I hope you learned
5979.179 -> a lot of different things in this
5982 -> project. This is going to be an excellent
5984.76 -> project for your resume, and make sure
5987.699 -> you're writing LinkedIn post that way
5989.26 -> you know you can draw attention from
5991.36 -> potential recruiters. If you like this
5993.699 -> video give it a thumbs up and please
5995.38 -> share it with your friends. Any question
5997.6 -> or comments post in the comment box
6000 -> below or we have a Discord server for
6002.639 -> Codebasics go there and you can post
6004.44 -> your question there as well! Thank you!
6007.91 -> [Music]
Source: https://www.youtube.com/watch?v=4QkYy1wANXA