목록파이썬 (149)
차밍이
목차 패키지란? 패키지는 모듈들을 모아 놓은 디렉토리를 뜻합니다. 예를 들어 우리는 평면도형의 면적을 구해 주는 area 모듈과 입체도형의 부피를 구해주는 volume 모듈을 모아서 shapes라는 패키지를 만들었습니다. shapes 패키지의 구조는 아래와 같습니다. shapes/ __init__.py area.py volume.py shapes/area.py PI = 3.14 # 원의 면적을 구해 주는 함수 def circle(radius): return PI * radius * radius # 정사각형의 면적을 구해 주는 함수 def square(length): return length * length shapes/volume.py PI = 3.14 # 구의 부피를 구해 주는 함수 def sphere..
목차 What is Module ? 모듈은 여러 기능을 모아둔 파이썬 파일입니다. 사용할 함수들을 정의해 놓은 파일을 의미합니다. 예를 들어 우리는 평면도형의 면적을 구해 주는 함수들을 모아서 area라는 모듈을 만들었습니다. area.py PI = 3.14 # 원의 면적을 구해 주는 함수 def circle(radius): return PI * radius * radius # 정사각형의 면적을 구해 주는 함수 def square(length): return length * length import area 등의 방식으로 import해서 area 모듈의 circle 등의 함수를 사용할 수 있습니다. What is Script ? 스크립트는 모듈에서 정의함 함수들을 사용하는 파일을 의미합니다. run.py..
목차 1. 데이터 불러오기 1-1. CSV 파일 데이터를 청크 크기로 읽어오기 100만개 이상이 넘어가는 row를 가진 데이터셋을 불러온다면 너무 무거워져서 속도가 매우 느려지게 됨 pandas.read_csv에서 chunksize라는 매개변수 활용 가능 로컬 메모리에 맞추기 위해 한 번에 DataFrame으로 읽어 올 행의 수를 지정 가능 df_chunk = pd.read_csv(r'../input/data.csv', chunksize=1000000) 1-2. 파일이 안불러와 질 때, 각 Column 타입 줄여서 불러오기 데이터가 너무 많아 불러오기 힘든 경우, 각 Column의 타입을 확인해서 데이터 크기를 줄여서 불러올 수 있다. def check_dtypes(file_path): print(fil..
목차 Pandas로 대용량 데이터 분석을 진행하다보면 문제가 겪는 어려움 들이 많다. pandas로 데이터를 읽는데 어려움이 있는 경우 취할 수 있는 방법이다. 1. 파일이 불러와지지 않는 경우 대략적인 과정 column 명 만 먼저 가져온다. 각 데이터 테이블에서 특정 column의 데이터만 가져온다. 해당 column의 데이터 타입을 확인한다. 해당 column의 데이터 범위를 확인하여, 데이터 타입을 줄일 수 있는 경우 타입을 변경해 줄인다. 전체 column에 대해서 진행한다. 이 후 pd.read_csv를 통해 데이터를 읽어올 때, 데이터 타입을 정해서 읽어오도록 한다. 소스코드 - 파일이 불러와지지 않는 경우 def check_dtypes(file_path:str) -> dict: print(..
웹페이지가 완전히 로딩되지 않아서 문제가 발생하는 경우가 종종 있다. 예를들어 ElementNotVisibleException 에러가 발생한다. 웹페이지가 다 열리지 않은 상태에서 특정 객체를 찾으려고 하면, 해당 객체가 없어서 찾을 수 없다는 에러를 발생시키는 것이다. 이를 히결하려면 로딩이 완전히 될 때까지 기다려야 한다. Selenium의 두 가지 Wait 방법 Implicitly wait: 정해진 시간만큼 충분히 기다리기 Explicitly wait: 어떤 조건이 만족할 때까지 기다리기 Implicitly wait Implicitly wait을 10초로 설정하면 페이지가 로딩되는데 10초까지 기다립니다. 만약 페이지 로딩이 2초에 완료되었다면 더 기다리지 않고 다음 코드를 수행합니다. 기본 설정은..
Scatter Plot Animation matplotlib.animation.FuncAnimation class matplotlib.animation.FuncAnimation(fig, func, frames=None, init_func=None, fargs=None, save_count=None, , *cache_frame_data=True, *kwargs*) def func(frame, *fargs) -> iterable_of_artists matplotlib에서도 애니메이션 형식으로 움직이는 그래프를 그려줄 수 있다. 그림을 그려줄 fig객체와 시간에 따라 변화하는 데이터의 변화를 어떻게 정의할 것인지에 대한 함수(func)가 필요하다. 보통 matplotlib 에니메이션 관련해서 검색하면 전체 데..
목차 요약 Close 는 하나의 Tab만 종료함 Quit은 Webdriver 전체를 종료함 하나의 탭만 종료하고 기존의 webdriver 연결을 유지하려면 Close를 사용하면 된다. 전체 Driver를 종료하고 프로그램을 끝내려면 Quit을 사용하면 된다. 끝! Close close()는 현재 selenium webdriver가 활성화되어 있는 Tab만 종료 2개 이상의 webdriver 탭이 열려있다면 현재 활성화되어 있는 webdriver만 종료 나머지 webdriver는 연결 유지 Quit quit()는 dispose() 함수를 불러와 열려있는 모든 webdriver를 종료하고 세션을 마침 프로그램을 종료할 때 quit()을 사용하지 않는다면 webdriver 세션이 완벽하게 종료되지 않아 메모리..
등수 매기기 시간 제한메모리 제한제출정답맞힌 사람정답 비율 2 초 256 MB 6534 2432 1973 36.906% 문제 2007년 KOI에 N명의 학생들이 참가하였다. 경시일 전날인 예비소집일에, 모든 학생들은 자신이 N명 중에서 몇 등을 할 것인지 예상 등수를 적어서 제출하도록 하였다. KOI 담당조교로 참가한 김진영 조교는 실수로 모든 학생의 프로그램을 날려 버렸다. 1등부터 N등까지 동석차 없이 등수를 매겨야 하는 김 조교는, 어쩔 수 없이 각 사람이 제출한 예상 등수를 바탕으로 임의로 등수를 매기기로 했다. 자신의 등수를 A등으로 예상하였는데 실제 등수가 B등이 될 경우, 이 사람의 불만도는 A와 B의 차이 (|A - B|)로 수치화할 수 있다. 당신은 N명의 사람들의 불만도의 총 합을 최소..
뒤집기 시간 제한메모리 제한제출정답맞힌 사람정답 비율 2 초 128 MB 15466 8301 6509 53.493% 문제 다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모두 뒤집는 것이다. 뒤집는 것은 1을 0으로, 0을 1로 바꾸는 것을 의미한다. 예를 들어 S=0001100 일 때, 전체를 뒤집으면 1110011이 된다. 4번째 문자부터 5번째 문자까지 뒤집으면 1111111이 되어서 2번 만에 모두 같은 숫자로 만들 수 있다. 하지만, 처음부터 4번째 문자부터 5번째 문자까지 문자를 뒤집으면 한 번에 0000000이 되어서 1번 만에 모두 같은 숫자로 ..
거스름돈 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 128 MB 28162 17674 15045 62.446% 문제 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사고 카운터에서 1000엔 지폐를 한장 냈을 때, 받을 잔돈에 포함된 잔돈의 개수를 구하는 프로그램을 작성하시오. 입력 입력은 한줄로 이루어져있고, 타로가 지불할 돈(1 이상 1000미만의 정수) 1개가 쓰여져있다. 출력 제출할 출력 파일은 1행으로만 되어 있다. 잔돈에 포함된 매수를 출력하시오. 예제 입력 1 380 예제 출력 1 4 예제 입력 2 1 예제 ..