목록파이썬 (57)
개발은 처음이라 개발새발

오늘도 축구 데이터를 가지고 df.plot의 다양한 그래프를 그려보고자 하는데요. 이번에 다뤄볼 데이터는 제가 최근에 입덕한 리버풀의 플레이메이커 트렌트 알렉산더-아놀드의 데이터입니다. 아놀드는 포지션은 오른쪽 풀백이지만 실제 경기를 보고 있으면 공격 전개시 중앙으로 침투하여 중앙 미드필더 같은 모습을 보이거나 우측에서 롱패스와 크로스를 통해 플레이메이커로서 98년생인 어린 나이에도 불구하고 굉장히 좋은 모습을 보여주고 있습니다.그래서 이번에 아놀드의 패스 관련 데이터를 수집해 그래프로 표현봤는데요. 참고한 사이트는 지난 번과 동일하게 fotmob을 통해 수집했습니다. https://www.fotmob.com/ FotMob FotMob is the essential app for matchday. Get..

데이터를 다루다 보면 중복행이 종종 보이는 경우가 있습니다. 가공 작업을 진행하는 입장에서 표본이 적은 상황에서는 가볍게 엑셀에서 지워도 무방합니다. 하지만 세상 일이라는 게 그리 호락호락하지 않죠. 최근 겪을 일을 이야기해보자면 새로운 게임 스탯을 만들기 위해 분석하는 과정에서 행이 20만 개가 넘는 데이터를 다룰 때였습니다. 처음에는 중복된 것이 없는 줄 알았는데 특정 부분이 지나지체 많다 싶어 확인해보기 무려 3만 개가 넘는 중복행이 있던군요. ㅠㅠ 정말 막막했는데 판다스에서 간단한 코드를 해결할 수 있었습니다. 우선 예제를 만들어보겠습니다. import pandas as pd dict_data = {'goal':[23,23,2,1,15,17,23], 'assist':[7,13,12,7,8,9,7]..

안녕하세요, 개발새발입니다. 저는 최근에 일을 하면서 프리미어리그에 흠뻑 빠지게 돼 22/23 시즌을 앞두고 다끝난 21/22시즌을 다시보기 하고 있습니다. 그중에서 득점왕을 차지한 손흥민 선수의 경기를 많이 챙겨보고 있는데요. 이번 시간에는 지난 7년간 프리미어리그에서 활약 중인 손흥민 선수의 공격포인트(득점, 어시스트) 기록은 면적 그래프로 그려보도록 하겠습니다. import pandas as pd import matplotlib.pyplot as plt #한글 처리 from matplotlib import font_manager, rc font_path = "c:/windows/Fonts/malgun.ttf" #한글 폰트 경로 font_name = font_manager.FontProperties(..

저는 종종 취미로 스포츠 데이터를 모으는 것을 합니다. 그럴 때 주로 크롤링을 통해 데이터를 수집하는데요. 대부분의 기록 사이트가 오픈돼 있기 때문에 로그인이 필요하지 않지만 가끔 크롤링할 기록실 링크를 직접 넣어도 반드시 로그인을 수반해야 되는 경우가 있습니다. 그럴 때 어떻게 로그인을 해결하는지 네이버를 예시로 한번 진행해 보도록하겠습니다. *** 셀레니움으로 네이버 축구 순위 크롤링 1편 - https://data-so-hard.tistory.com/9?category=976315 2편 - https://data-so-hard.tistory.com/10?category=976315 3편 - https://data-so-hard.tistory.com/11?category=976315 4편 - http..

오늘은 책을 한권 소개해볼까합니다. 보통 파이썬을 처음 공부하고자 마음 먹을 때, 특히 저와 같이 일을 하면서 필요성을 느껴 공부를 해보고자 할 때는 주변 지식이 없기에 무엇부터 시작해야 할지 꽤나 막막합니다. 그래서 이것저것 sns에서 광고하는 파이썬 강의 사이트를 찾아보며 이것저것 강의를 듣게 되는데요. 하지만 이렇게 시작하게 되면 금방 흥미를 잃어 강의를 완강하기가 꽤나 힘들더라고요. 왜냐하면 첫 번째로 일에 대한 필요성을 느껴 시작하게 됐다는 것은 내가 하는 실무에 바로 적용하길 원하다는 뜻인데, 사람들은 수많은 일을 하고 파이썬 다양한 곳에서 활용되고 있어 저에게 딱맞는 수업과 예제를 풀어보기란 정말 어렵습니다. 그리고 바로 실전에 활용하는 수업을 듣게 되면 기본 지식에 굉장히 소홀한 수업을 듣..

파이썬을 공부하면서 저는 개인적으로 조건문과 반복문을 이해하는 게 굉장히 어려웠습니다. 물론 지금도 완벽하게 알지 않지만 백준 단계별 문제 풀이를 통해서 알고리즘을 이해해 나가고 있는데요. 오늘은 백준 단계별 문제 풀이 반복문 챕터 중 두 문제에 대해 간단한 포스팅을 해볼까 합니다. 우선 2741번 문제입니다. 해당 문제는 매우 간단하게 n이라는 변수에 숫자를 입력하고 입력한 숫자만큼 순차적으로 표출 시키면 됩니다. 간단하니 바로 코드를 입력해 결과를 확인해보겠습니다. 저는 n에 예제와 달리 10을 넣어보겠습니다. 옳은 방법이라면 1부터 10까지 나오겠죠? n = int(input()) for i in range(1,n+1): print(i) 네 이렇게 1부터 10까지 숫자가 나왔습니다. 그렇다면 거꾸로..

지난 편에서는 한글 폰트를 사용했을 때 발생하는 오류를 해결했습니다. 이번 시간에는 matplotlib에서 제공하는 다양한 스타일을 소개하고 그래프를 좀 더 꾸며보기로 하겠습니다. 우선 지난 편에 만들었던 그래플 다시 한번 보겠습니다. 보게 되면 제목과 x,y축에 있는 한글들이 너무 작습니다. 그리고 연도들이 너무 붙어 있어 명확하게 무엇을 의미하는지 확인하기가 힘듭니다. 우선 이 3가지의 문제들을 해결해보겠습니다. 우선 연도부터 건드려보겠습니다. 숫자들이 붙어 있는 것은 크기를 줄여서 해결할 수도 있지만 그렇게 되면 너무 작아 안 보이는 것은 같겠죠. 이럴 때는 숫자의 각도를 변경해 해결할 수 있습니다. 그리고 표의 사이즈 크기를 키우는 것도 하나의 방법이니 모두 적용해보겠습니다. 그래프의 크기를 키우..

import pandas as pd import matplotlib.pyplot as plt df = pd.read_excel('./시도별 전출입 인구수.xlsx', header=0) #빈칸 채워주기 df = df.fillna(method='ffill') #서울에서 다른 지역으로 이동하는 인구수 mask = (df['전출지별'] == '서울특별시') & (df['전입지별'] != '서울특별시') df_seoul = df[mask] df_seoul = df_seoul.drop(['전출지별'], axis=1) #불필요한 전출지별 제게 df_seoul.rename({'전입지별':'전입지'}, axis=1, inplace=True) #컬럼명 변경 df_seoul.set_index('전입지', inplace=Tr..

지난 시간에는 df.plot()을 이용해 여러 그래프를 그려봤는데요. 이번 시간에는 또다른 그래프 라이브러리인 maplotlib를 활용해 그래프를 그려보겠습니다. matplotlib는 "파이썬의 표준 시각화 도구"라고 부를 수 있을 정도로 평면 그래프와 관련해 다양한 포맷과 기능을 지원합니다. 또한 객체지향 프로그래밍을 지원해 그래프 요소를 세세하게 꾸밀 수 있는 장점 또한 가지고 있습니다. matplotlib 설명은 여기까지 하고 본격적으로 matplotlib를 이용해 그래프를 그려 보도록하겠습니다. matplotlib를 실행시키기 위해서는 import를 해야 겠죠? 이번에 활용할 데이터프레임은 시도별 전출입 인구수입니다. 코드를 진행해보겠습니다. import pandas as pd import mat..

반복문을 활용한 합을 구하는 문제입니다. 문제를 쭉 읽어보면 n이라는 숫자가 주어졌을 때 1부터 n까지의 합산을 반복문을 통해 구해보라는 것인데요. 예제 1의 3을 입력했더니 출력이 6이 나오는 것을 감안했을 때 "1 + 2 + 3 = 6" 을 의미하는 것을 알 수 있습니다. 그렇다면 일단 n의 변수를 만들어야 겠죠? input() 함수를 활용할 것이고 연산을 해야 하기 때문에 int를 씌어야 합니다. 코드를 진행해 보겠습니다. n = int(input()) 변수 n을 만들었으니 반복문을 작성하기 전에 또 하나 만들어야 할게 있습니다. n은 어디까지나 반복문의 범위를 지정해주는 변수이기 때문에 반복문을 통해 더해질 변수를 하나더 적어야 합니다. 그 변수는 반복문을 통해 처음 더해졌을 때 1이 되어야 하니..