RCB GM 에뮬레이터: IPL 데이터 세트에서 EDA 실행
7527 단어 datasciencepython
우리가 해야 할 일은 탐색적 데이터 분석인 약칭 EDA라는 분석 데이터 집합으로 그 주요 특징을 정리하는 과정이다.이를 위해 this IPL Dataset를 사용하겠습니다.우선, 우리가 무엇을 가지고 있는지 보여 주시겠어요?
import pandas as pd
import numpy as np
df=pd.read_csv("matches.csv")
df.head()
그래, 이건 많은 소식이야!Pandas Dataframe info() 방법을 사용하여 분해합니다.
df.info()
RCB의 사장으로서, 당신의 업무는 사용 가능한 데이터에서 가능한 한 많은 정보를 추출하는 것입니다.이것은 정확한 문제를 제기하는 것을 포함한다.우리의 데이터 집합을 자세히 살펴보면 얼마나 많은 데이터가 진정으로 유용합니까?심판은 아니지.우리 얘네 버릴까요?
df.drop(["umpire1", "umpire2", "umpire3"], inplace=True, axis=1)
df.head()
지금 우리가 합작할 수 있는 거야!그러나 GM(그리고 일반적인 데이터 과학)으로서의 문제는 어떤 질문을 해야 할지 알려주는 사람이 없다는 것이다.정확한 문제를 제기하는 것이 왕왕 문제에 대답하는 것보다 더 어렵다.다음은 내가 이 데이터 집합이 대답할 수 있다고 생각하는 다섯 가지 문제다.
문제1) 특정 장소에서 동전 던지기를 이기는 것이 얼마나 중요한가?
Pandas의 가장 멋있는 점은 논리를 연결해서 SQL보다 더 간결하게 원하는 출력을 얻을 수 있다는 것이다.우리의 데이터 집합은 매 경기의 우승자를 제공했다.우리도 누가 매 경기에서 동전 던지기를 이겼는지 안다.2와 2를 함께 놓고 동전을 던져 이긴 팀도 이겼다면 이 두 가지는 반드시 같아야 한다.마지막으로, 우리는 장소에 따라 이 데이터를 제공해야 한다.다른 하나는 백분율이 우리에게 원시 숫자보다 더 유용하다는 것이다.
df[df["toss_winner"]==df["winner"]].value_counts("venue")/df.value_counts("venue")*100
이게 얼마나 쉬운지 볼까요?필터된 데이터를 value counts () 방법으로 그룹화한 다음 해당 필드에서 진행되는 총 경기로 나누는 것을 주의하십시오.이는 색인을 사용하여 유사한 데이터 객체를 검색할 수 있기 때문에 Panads의 또 다른 시각적 특성입니다.
우리는 어떤 장소에서는 주사위 던지기에 대한 의존도가 100퍼센트라는 것을 보았다.그러나 우리가 이 경기장에서 몇 경기를 치렀는지 보면 더욱 뚜렷한 화면이 나올 것이다.경기가 많을수록 이 숫자는 50에 가깝다.
문제2) 특정 장소에서 먼저 공을 치거나 먼저 슛하는 것이 유리한가?
이제 이 질문에 대답하는 과정은 첫 번째 직감과 같다.이번에는 우리가 원하는 형식의 데이터를 얻기 위해 조정을 해야 한다.
fielding_wins=df[((df["toss_winner"]==df["winner"]) & (df["toss_decision"]=="field")) | ((df["toss_winner"]!=df["winner"]) & (df["toss_decision"]=="bat"))].value_counts("venue")
fielding_wins.sort_index(inplace=True)
batting_wins=df[((df["toss_winner"]==df["winner"]) & (df["toss_decision"]=="bat")) | ((df["toss_winner"]!=df["winner"]) & (df["toss_decision"]=="field"))].value_counts("venue")
missing_rows=pd.Series([0,0],index=["Green Park", "Holkar Cricket Stadium"])
batting_wins=batting_wins.append(missing_rows)
batting_wins.sort_index(inplace=True)
choices=fielding_wins>batting_wins
encoder={True:"Field", False:"Bat"}
choices.map(encoder)
이것이 바로 우리의 결과다!많은 코드처럼 보이지만 논리는 이해하기 어렵지 않다.위에서 아래로의 방법에 따라 우리는 반드시
df[df["toss_winner"]==df["winner"]].value_counts("venue")/df.value_counts("venue")*100
이제 이 질문에 대답하는 과정은 첫 번째 직감과 같다.이번에는 우리가 원하는 형식의 데이터를 얻기 위해 조정을 해야 한다.
fielding_wins=df[((df["toss_winner"]==df["winner"]) & (df["toss_decision"]=="field")) | ((df["toss_winner"]!=df["winner"]) & (df["toss_decision"]=="bat"))].value_counts("venue")
fielding_wins.sort_index(inplace=True)
batting_wins=df[((df["toss_winner"]==df["winner"]) & (df["toss_decision"]=="bat")) | ((df["toss_winner"]!=df["winner"]) & (df["toss_decision"]=="field"))].value_counts("venue")
missing_rows=pd.Series([0,0],index=["Green Park", "Holkar Cricket Stadium"])
batting_wins=batting_wins.append(missing_rows)
batting_wins.sort_index(inplace=True)
choices=fielding_wins>batting_wins
encoder={True:"Field", False:"Bat"}
choices.map(encoder)
이것이 바로 우리의 결과다!많은 코드처럼 보이지만 논리는 이해하기 어렵지 않다.위에서 아래로의 방법에 따라 우리는 반드시
(솔직히: 난 한꺼번에 한 게 아니야. 네가 여기서 본 모든 게 깔끔한 코드 블록으로 포장되어 있어. 앞에 경고가 많고 머리가 긁히고 많은 시도와 오류가 있어)
문제3) 빗물의 영향을 받은 경기에서 추격팀이 정말 우세한가?
판다의 힘으로 코드 한 줄로 이 질문에 대답합시다!만약 지금까지 코드를 따르고 있다면, 이것은 지름길일 것입니다.
df[(((df["toss_winner"]==df["winner"]) & (df["toss_decision"]=="field")) | ((df["toss_winner"]!=df["winner"]) & (df["toss_decision"]=="bat")))& (df["dl_applied"]==1)].size/df[df["dl_applied"]==1].size*100
자, 시작합시다. 추격팀이 빗물의 영향을 받은 81%의 경기를 이겼습니다.
문제4) 각 팀은 어느 장소에서 가장 강합니까?
이것은 약간의 사고와 일부 분야의 지식을 필요로 한다.우선, 우리가 필요로 하는 것은 이긴 사람이 맞은 장소의 계수다.물론, 우리는 모든 팀이 특정한 장소에서, 보통 그들의 홈경기에서 가장 잘 한다는 것을 안다.이 쌍의 계수는 정렬 목록의 맨 위에 있어야 한다. (예를 들어 여러 번 이름을 바꾼 팀을 제외하고는.)이런 직감을 이용하여 우리는 다음과 같은 코드 세션으로 우리의 질문에 대답할 수 있다.
team_venue_counts=df.groupby(["winner", "venue"]).agg("count")["id"]
team_venue_counts=team_venue_counts.sort_values(ascending=False)
team_venue_counts.head(9)
우리는 팀이 홈경기에서 확실히 가장 많은 승리를 거두었다는 것을 보았다.그러나 한 퍼센트가 홈경기에서의 활약을 더 잘 반영할 수 있다.이긴 쪽의 필드 쌍과 필드 계수를 포함한 조립, 추가, 재배열이 필요하다.불행하게도 이 과정의 복잡성은 본문의 목적을 넘어섰다.계속해!
문제5) 팀별 실적은 어떤가?
여기에는 우리 팀이'팀 1'과'팀 2'열에 나타나기 때문에 복잡한 절차가 포함되어 있다.그러나 어쨌든 코드는 매우 간단하다.
as_team1_wins=df[(df["team1"]=="Royal Challengers Bangalore") & (df["winner"]=="Royal Challengers Bangalore")].value_counts("team2")
as_team1_games=df[(df["team1"]=="Royal Challengers Bangalore")].value_counts("team2")
as_team2_wins=df[(df["team2"]=="Royal Challengers Bangalore") & (df["winner"]=="Royal Challengers Bangalore")].value_counts("team1")
as_team2_games=df[(df["team2"]=="Royal Challengers Bangalore")].value_counts("team1")
(as_team1_wins+as_team2_wins)/(as_team1_games+as_team2_games)*100
지금 나는 이것이 약간 해커 같다는 것을 인정하지 않을 수 없다.데이터를 저장하는 데 사용되는 변수의 크기가 완전히 같지 않다. 이로 인해 둘 사이에 있는 낸이 생겼다.하지만 판다는 남은 부분을 어떻게 처리해야 할지 알고 있다는 것이 인상적이다!
그 다음으로 우리는'굴기하는 포나 슈퍼 자이언트'와'굴기하는 포나 슈퍼 자이언트'가 각각 두 개의 단독 항목이 있는 것을 보았다.이것은 당연히 정리할 만한 가치가 있다!
이제 네 차례야!너는 네가 이 오류들을 복구할 수 있다고 생각하니?사장으로서 이 데이터 세트를 통해 얻을 수 있는 또 다른 견해는 무엇입니까?더 좋은 견해를 얻기 위해서, 당신은 어떤 다른 데이터로 그것을 보충해야 합니까?마지막으로 가장 중요하지 않은 것은 무엇이 우리의 발견을 시각화하는 가장 좋은 방법일 수 있는가 하는 것이다.
질문이 있습니까?너는 내가 어떤 다른 방법이 있다고 생각하니?언제든지 저에게 말씀해 주십시오. 저는 매우 기꺼이 회답할 것입니다.
Reference
이 문제에 관하여(RCB GM 에뮬레이터: IPL 데이터 세트에서 EDA 실행), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/ucscmozilla/rcb-gm-simulator-running-an-eda-on-the-ipl-dataset-57jb
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
df[(((df["toss_winner"]==df["winner"]) & (df["toss_decision"]=="field")) | ((df["toss_winner"]!=df["winner"]) & (df["toss_decision"]=="bat")))& (df["dl_applied"]==1)].size/df[df["dl_applied"]==1].size*100
이것은 약간의 사고와 일부 분야의 지식을 필요로 한다.우선, 우리가 필요로 하는 것은 이긴 사람이 맞은 장소의 계수다.물론, 우리는 모든 팀이 특정한 장소에서, 보통 그들의 홈경기에서 가장 잘 한다는 것을 안다.이 쌍의 계수는 정렬 목록의 맨 위에 있어야 한다. (예를 들어 여러 번 이름을 바꾼 팀을 제외하고는.)이런 직감을 이용하여 우리는 다음과 같은 코드 세션으로 우리의 질문에 대답할 수 있다.
team_venue_counts=df.groupby(["winner", "venue"]).agg("count")["id"]
team_venue_counts=team_venue_counts.sort_values(ascending=False)
team_venue_counts.head(9)
우리는 팀이 홈경기에서 확실히 가장 많은 승리를 거두었다는 것을 보았다.그러나 한 퍼센트가 홈경기에서의 활약을 더 잘 반영할 수 있다.이긴 쪽의 필드 쌍과 필드 계수를 포함한 조립, 추가, 재배열이 필요하다.불행하게도 이 과정의 복잡성은 본문의 목적을 넘어섰다.계속해!
문제5) 팀별 실적은 어떤가?
여기에는 우리 팀이'팀 1'과'팀 2'열에 나타나기 때문에 복잡한 절차가 포함되어 있다.그러나 어쨌든 코드는 매우 간단하다.
as_team1_wins=df[(df["team1"]=="Royal Challengers Bangalore") & (df["winner"]=="Royal Challengers Bangalore")].value_counts("team2")
as_team1_games=df[(df["team1"]=="Royal Challengers Bangalore")].value_counts("team2")
as_team2_wins=df[(df["team2"]=="Royal Challengers Bangalore") & (df["winner"]=="Royal Challengers Bangalore")].value_counts("team1")
as_team2_games=df[(df["team2"]=="Royal Challengers Bangalore")].value_counts("team1")
(as_team1_wins+as_team2_wins)/(as_team1_games+as_team2_games)*100
지금 나는 이것이 약간 해커 같다는 것을 인정하지 않을 수 없다.데이터를 저장하는 데 사용되는 변수의 크기가 완전히 같지 않다. 이로 인해 둘 사이에 있는 낸이 생겼다.하지만 판다는 남은 부분을 어떻게 처리해야 할지 알고 있다는 것이 인상적이다!
그 다음으로 우리는'굴기하는 포나 슈퍼 자이언트'와'굴기하는 포나 슈퍼 자이언트'가 각각 두 개의 단독 항목이 있는 것을 보았다.이것은 당연히 정리할 만한 가치가 있다!
이제 네 차례야!너는 네가 이 오류들을 복구할 수 있다고 생각하니?사장으로서 이 데이터 세트를 통해 얻을 수 있는 또 다른 견해는 무엇입니까?더 좋은 견해를 얻기 위해서, 당신은 어떤 다른 데이터로 그것을 보충해야 합니까?마지막으로 가장 중요하지 않은 것은 무엇이 우리의 발견을 시각화하는 가장 좋은 방법일 수 있는가 하는 것이다.
질문이 있습니까?너는 내가 어떤 다른 방법이 있다고 생각하니?언제든지 저에게 말씀해 주십시오. 저는 매우 기꺼이 회답할 것입니다.
Reference
이 문제에 관하여(RCB GM 에뮬레이터: IPL 데이터 세트에서 EDA 실행), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/ucscmozilla/rcb-gm-simulator-running-an-eda-on-the-ipl-dataset-57jb
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
as_team1_wins=df[(df["team1"]=="Royal Challengers Bangalore") & (df["winner"]=="Royal Challengers Bangalore")].value_counts("team2")
as_team1_games=df[(df["team1"]=="Royal Challengers Bangalore")].value_counts("team2")
as_team2_wins=df[(df["team2"]=="Royal Challengers Bangalore") & (df["winner"]=="Royal Challengers Bangalore")].value_counts("team1")
as_team2_games=df[(df["team2"]=="Royal Challengers Bangalore")].value_counts("team1")
(as_team1_wins+as_team2_wins)/(as_team1_games+as_team2_games)*100
Reference
이 문제에 관하여(RCB GM 에뮬레이터: IPL 데이터 세트에서 EDA 실행), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ucscmozilla/rcb-gm-simulator-running-an-eda-on-the-ipl-dataset-57jb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)