목록Python (173)
오답노트

CSS Selector HTML태그 3.텍스트 ~ 6.테이블관련 까지만 읽어도 해당 포스트를 이해하는데 문제는 없다. 시작 태그에는 id, class, attr가 존재하거나 태그명만 있는 경우가 있다. 위 4개 항목을 통해 Element를 선택할 수 있다. 기존 css에서 엘리먼트를 선택하는 방법은 아래와 같다. - tag이름 : span - id : #id - class : .class - attr : [value="val"] HTML로 살펴보자 span p_id p_class p_val style 태그 내부에 사용한 것이 CSS Selector 이다. n번째 선택 위 css selector 뒤에 :nth-child(n) 이 붙는다. n은 n번째를 의미한다. 주의해야할 점은 css selector로 선..

동적 페이지 동적 페이지는 요즘 많이 쓰고있는 반응형 웹이 동적 페이지이다. 사용자가 버튼을 클릭하거나 상호작용, 이벤트가 발생해도 URL이 바뀌지 않고 바로 페이지 내에서 결과가 나타난다. 동적 페이지 웹 크롤링 웹 크롤링은 크게 동적 페이지에 대해서 또는 정적 페이지에 대해서 수행할 수 있다. 하지만 이 둘의 웹 크롤링 방법은 상당히 다르다. 동적페이지는 보통 json 형식으로 데이터를 크롤링할 수 있다. 리그 오브 레전드 전적 조회 사이트인 op.gg 에서 챔피언 목록을 웹 크롤링 실습을 통해 동적 페이지 웹 크롤링을 알아보자. 1. op.gg 챔피언 분석 탭 에 접속한다. 2. F12를 눌러 개발자 툴을 키고 가장 상위 탭 중에서 Network를 클릭한다. 그리고 바로 아래 탭에서 Fetch/XH..
requests 패키지 REST 방식을 사용할 수 있게 해주는 파이썬 패키지이다. 요약하면 URL로 정보를 요청해서 데이터를 받을 수 있다. get() HTTP 메소드 GET을 사용하는 함수다. GET의 특징은 URL에 파라미터가 들어간다는 점이다. URL로만으로 데이터를 가져오지 못하는 경우가 있는데, 이 때는 headers 속성에 referer 와 user-agent를 딕셔너리로 만들어 입력한다. import requests headers = { "referer": "https://www.op.gg/champions", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome..

map 범주형 값을 다른 값으로 변경할 수 있다. 시리즈에서 사용할 수 있는 메소드로 인자로는 딕셔너리를 받는다. 딕셔너리에는 {"현재 시리즈의 값" : "변경할 값"} 과 같이 입력한다. dataframe['Status'] = dataframe['Status'].map({1: "Bad", 2:"Nomal",3:"Good"}) cut 수치형 요소를 구간을 지정하여 분할할 수 있다. cut 함수는 인자로 시리즈를 받고, 해당 시리즈를 분할한 값으로 입력한다. labels 옵션은 리스트를 입력할 수 있고, 구간을 지정하여 분할했을 때, 분할한 값을 지정한다. bins 옵션은 구간을 리스트로 입력할 수 있다. labels에 입력한 리스트의 크기보다 1 더 커야한다. bins = [0,30,60,100] dat..

열 이름 변경 rename (일부 열 이름 변경) columns 옵션에 딕셔너리 형태로 {"현재 열 이름" : "새로운 열 이름"}을 입력하면 된다. 하지만 inplace 옵션이 True일 경우에 현재 데이터프레임에 적용된다. 기본값은 False이므로 현재 데이터프레임에 적용하려면 inplace 옵션을 True로 해야한다. df_rename.rename(columns = {"Serise1": "Col1", "Serise2": "Col2",}, inplace = True) columns (전체 열 이름 변경) 데이터프레임의 columns 변수에 리스트로 값을 넣으면 해당 값 순서대로 열 이름이 변경된다. 단, 리스트의 크기는 데이터프레임의 열의 개수와 일치해야한다. df_rename_all.columns ..

조건 확인 시리즈를 조회하는 문법에 바로 조건절을 사용하면 된다. 결과는 Boolean으로 출력된다. 부정 기호는 ~ 이다. 부정하고 싶은 조건문에는 괄호를 쳐야만한다. dataframe['Status'] > 2 ''''''' 0 False 1 False 2 True 3 False 4 True 5 False 6 False 7 False 8 False 9 True 10 False 11 False ''''''' ~ (dataframe['Status'] > 2) ''''''' 0 True 1 True 2 False 3 True 4 False 5 True 6 True 7 True 8 True 9 False 10 True 11 True ''''''' 여러 조건을 조회 할때는 &(and) 와 |(or) 기호를 사용..

열 조회하기 데이터프레임 변수에 ['컬럼명'] 을 통해 열을 조화할 수 있다. 다른 방법으로는 데이터프레임 변수에 .컬럼영 을 통해서도 조회할 수 있다. print(data_frame['Serise1']) print(data_frame.Serise1) ''''''' 0 12 1 56 2 89 3 57 4 25 5 56 6 85 7 69 8 34 9 69 10 47 11 60 Name: Serise1, dtype: int64 ''''''' 통계 메소드 sum 열의 합계 조회 data_frame['Serise1'].sum()# 659 max 열의 최대값 조회 data_frame['Serise1'].max()# 89 min 열의 최소값 조회 data_frame['Serise1'].min()# 12 mean 열..

unique 데이터 프레임에서 시리즈에 대해 고유값을 출력하는 함수다 data_frame['Status'].unique() # array([1, 2, 3], dtype=int64) value_counts 고유 값과 그 개수를 확인할 수 있다. data_frame['Status'].value_counts() ''' 1 5 2 4 3 3 Name: Status, dtype: int64 '''

sort_values 사용자가 선택한 열을 기준으로 정렬한다. 옵션으로 by,ascending 이 있다. by는 열을 선택하는 옵션이다. by에 열의 이름을 넣는다. ascending 옵션은 기본값이 True로 오름차순 정렬이 기본이다. ascending 옵션에 False 값을 입력하면 내림차순 정렬이 된다. data_frame.sort_values(by = 'Serise1') data_frame.sort_values(by = 'Serise1',ascending = False)

데이터 프레임의 크기 (shape) 튜플의 형태로 데이터 프레임의 크기를 반환한다. 순서는 행, 열이다. data_frame.shape# (12, 4) 데이터 프레임의 열 확인 (columns) data_frame의 columns 변수를 통해 열의 이름들을 확인할 수 있다. 이 때 반환은 Pandas의 Index 자료형으로 반환되고 columns.values 변수를 통해 열의 이름을 확인하면 array로 반환된다. print(data_frame.columns) # Index(['Label', 'Serise1', 'Serise2', 'Serise3'], dtype='object') print(data_frame.columns.values) # array(['Label', 'Serise1', 'Serise2..