220502 코딩 테스트 문제 리스트 Web crawling해보기
이번 포스팅에서는 코테준비를 하기 위해서 코테문제를 풀다가 집중도 안되고, 원래 체크리스트를 만들어 놓고 하나씩 지워나가면서 하면 뭔가 성취감도 느끼고 해서 프로그래머스의 연습문제 페이지에 있는 문제 리스트를 Selenium + BeautifulSoup + Pandas + Python
의 조합으로 빠르게 크롤링을 해서 엑셀파일로 뽑아보았다.
220502 코딩 테스트 문제 리스트 Web crawling해보기
이번 포스팅에서는 코테준비를 하기 위해서 코테문제를 풀다가 집중도 안되고, 원래 체크리스트를 만들어 놓고 하나씩 지워나가면서 하면 뭔가 성취감도 느끼고 해서 프로그래머스의 연습문제 페이지에 있는 문제 리스트를 Selenium + BeautifulSoup + Pandas + Python
의 조합으로 빠르게 크롤링을 해서 엑셀파일로 뽑아보았다.
이번 포스팅에서는 본격적으로 Pandas 학습한 내용을 나중에 복습하기 위한 목적에서 간단하게 정리해보려고 한다.
1 | import pandas as pd |
1 | bank_df.set_index('First Name', inplace = True) # inplace = True로 원본 데이터 업데이트 |
reset_index
메소드를 사용한다.1 | bank_df.reset_index(inplace = True) |
1 | bank_df = pd.read_csv('bank_client_information.csv', index_col = 'First Name') |
1 | # 방법1 |
220314 Pandas DataFrame Fundamentals
이번 포스팅에서는 본격적으로 Pandas의 DataFrame에 대한 학습을 하면서 학습한 내용들을 정리해보려고 한다.
1 | import pandas as pd |
Pandas series는 pd.Series constructor method의 parameter로 data를 넘겨주어 Pandas series를 정의하였다. Pandas DataFrame도 마찬가지로 위와같이 pd.DataFrame constructor method의 parameter로 python의 dictionary data를 넘겨주어 정의한다.
Dictionary의 key/value에서 key값이 DataFrame의 column명이 되며, value의 리스트 타입의 값이 각 row의 값이 된다.
1 | # Challenge#1 |
2022/03/24(목) 추가 기록
1 | import pandas as pd |
1 | import pandas as pd |
1 | bank_df.to_csv('sample_output_noindex.csv', index = False) |
220312 Pandas DataFrame으로 넘어가기 전 Pandas Series 최종복습 및 실습
이번 포스팅에서는 학습했던 Pandas series에 대한 내용에 대해서 복습 및 실습을 하고, 그에 대한 내용을 정리해보고자 한다.
우선 Pandas란 데이터를 분석하고 각종 처리를 할 때 이용하는 파이썬 언어 기반의 라이브러리이다.Pandas로 데이터를 표현하는 두 가지 방법
이 있는데 바로 여지까지 학습했던 시리즈(Series)
라는 녀석과 데이터프레임(DataFrame)이란 놈이다.
이전 포스팅에서 두 개념(시리즈/데이터프레임)에 대해서 간단하게 다뤄보았지만, 아주간단하게 요약을 하자면,
시리즈(Series)란, 표(table)로 포멧팅되지 않은 리스트 형태로만 표현된 것으로, 열(Column)이 하나인 데이터 프레임이라고 생각하면 된다. 즉, 데이터 프레임은 여러 column의 series를 dictionary형태로 묶은 것이라고 볼 수 있다.
1 | # DataFrame 예시 |
실제로 실무에서 분석하고 처리해야되는 데이터는 위에서 예시로 든 데이터와는 비교도 안 될 정도로 엄청 크고 방대할 것이다.
따라서 한눈에 보기 어려운 많은 양의 데이터가 어떤 개요(Overview)와 성향(Features)를 가지고 있고, 그 성향을 좀 더 잘 해석하기 위해서는 어떻게 데이터가 그룹화되어 표현되어야 하는지에 대한 남다른 해석능력도 필요하다. 그리고 데이터 중에서 유독 튀는 이상한 값은 없는지, 항상 확인하고 조작하는데 이 Pandas를 활용한다.
CSV 파일을 Pandas를 이용해서 읽어보고 직접 조작해보도록 하겠다. dataset은 kaggle에서 제공해주는 데이터 중에서 개인적인 흥미에 따라 구글 플레이 스토어 앱 다운로드와 관련된 데이터셋 데이터 정보를 다운받았다.
1 | import pandas as pd |
1 | # 구글플레이 스토어에서 다운받은 앱들 중에서 평점이 4.0 이상인 것들만 Genres, Rating, Installs, Size 항목으로 분류해서 나타낼 수 있도록 DataFrame 구성 |
220308 AI를 위한 Pandas (Pandas series에서 특정 요소 찾기, Pandas series slicing)
속성을 조회할때에는 Parantheses()를 사용하지 않는다.ex)my_series.values, my_series.shape
Parantheses()를 사용하는 경우에는 arguments(인자)를 포함하거나 Pandas series를 대체하거나 바꾼다.ex)my_series.tail(), my_series.head(), my_series.drop_duplicates()
Brackets[]를 사용하는 경우에는 Pandas series나 DataFrame에서 특정 요소에 접근하기 위함이다.ex)
1 | sp500 = pd.read_csv('S&P500_Prices.csv', squeeze=True) |
1 | import pandas as pd |
이번 포스팅에서는 Pandas series의 method에 대한 내용을 정리해보고자 한다.
1 | import pandas as pd |
1 | #Pandas의 read_csv method를 활용해서 csv파일을 읽기 위해서는 squeeze=True option은 필수이다. |
위의 각 결과를 보면 알 수 있듯이, Pandas series의 경우에는 formatting 없이 단순하게 (1차원의)하나의 열로 테이블화 된 형태로 데이터가 출력이 되고, DataFrame의 경우에는 각 셀에 스타일이 적용되어 테이블이 formatting되어 데이터가 출력된다.데이터 프레임(DataFrame)이란 1개의 열이 아닌, 여러 행과 열을 가진 다차원 데이터 테이블
이다.
Pandas는 이미 존재하는 python의 수 많은 함수들과 상호동작한다.
1 | sp500 = pd.read_csv('S&P500_Prices.csv', squeeze=True) |
1 | import pandas as pd |
1 | sp500 = pd.read_csv('S&P500_Prices.csv', squeeze=True) |
210204 Plotly + Pandas Practice
1 | import pandas as pd |
1 | # 제거할 column명을 column 속성을 명시해서 제거하거나 |
210203 Plotly + Pandas Practice
1 | # -*- coding: utf-8 -*- |
1 | print(read_csv.head()) |
1 | print(read_csv["Column name"]) |
1 | read_csv = read_csv[["Column name(1)", "Column name(2)", "Column name(3)"]] |
210203 [SyntaxError] Non-ASCII Character
Non-ASCII Character 에러
가 발생했다.1 | SyntaxError: Non-ASCII character '\xec' in file /Users/hyungilee/Documents/dev/side-projects/corona-dashboard/pandas_practice.py on line 3, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details |
Python의 경우, 기본적인 설정 상태에서 코드내에 한글이 있는 경우 코드 내의 한글을 Python 코드를 읽어들이지 못해서 위의 에러가 발생한다.
해결방법은 아래와 같이 파이썬 코드 맨 위 첫번째 혹은 두번째 줄에 한글 인코딩을 하도록 명령해주면 된다.
1 | # -*- coding: utf-8 -*- |