파이썬

[Pandas] 데이터프레임 인덱싱(loc, iloc) 및 단일값 접근(at, iat)
·
Data Science/Data Processing
인덱싱 (loc) loc(참고링크)는 location의 약자로 데이터프레임 인덱싱을 도와준다.일반적으로 파이썬에서는 []을 이용하여 리스트 인덱싱, 슬라이싱 등을 하는데 판다스 데이터프레임에서는 loc[]를 통해 비슷한 일을 한다고 생각하면 편하다.DataFrame.loc[name_row, name_column]위가 기본적인 접근 방법으로 loc는 행과 열의 이름으로 접근한다. 혹은 행과 열의 이름을 리스트로 넣어 접근할 수도 있다. 또한 :을 이용하여 슬라이싱도 가능하고, 조건을 넣어서 접근할 수도 있다.예를 들기 위해 아래와 같이 데이터를 불러오자.import seaborn as snsdf = sns.load_dataset('titanic')간단하게 데이터를 살펴보기 위해 head()를 이용하여 출력..
[Baekjoon 11286] 절댓값 힙 | Python
·
Online Judge/Baekjoon
https://www.acmicpc.net/problem/11286문제 힙에 넣고 빼는 간단한 문제인데, 힙에서 정렬 기준이 절댓값이다. 절댓값이 같다면 작은 순으로 정렬한다. 풀이 절댓값을 이용하기 위해 0보다 작은 경우 -1을 곱해 힙에 넣으면 원래 값을 알 수 없게 되기 때문에 절댓값을 구하여 힙에 넣는 것은 아니다.파이썬에는 heapq(참고링크)를 통해 편리하게 힙을 사용할 수 있는데, heapq의 heappop, heappush는 단일 값 뿐 아니라 리스트도 지원한다. 리스트의 정렬 기준은 리스트의 인덱스 순이다. 따라서 절댓값과 원래값을 리스트에 담아 힙에 넣으면 절댓값 순으로 정렬되면서 원래값도 보존할 수 있다.참고로 입력이 많으므로 sys를 사용하여 입력받아야 한다. 코드 import he..
[Pandas] 녹이기(melt)와 피벗(pivot)을 통한 데이터프레임 재구조화
·
Data Science/Data Processing
melt melt(참고링크)가 녹이기인 만큼 이 맥락에서 보면 열을 값으로 녹여 넣는다고 보면 된다. 예를 들어서 다음과 같은 데이터가 있다고 해보자.import pandas as pddata = { "이름": ["철수", "영희", "민수"], "수학": [90, 80, 70], "영어": [85, 95, 75], "국어": [75, 95, 95]}df = pd.DataFrame(data)그렇다면 df는 아래와 같다. 이름 수학 영어 국어0 철수 90 85 751 영희 80 95 952 민수 70 75 95그런데 이제 수학, 영어로 열을 나누는 것이 아니라 과목, 점수로 열을 나누고 싶을 수 있다. 이럴 때 melt를 사용한다.d..
[Baekjoon 10164] 격자상의 경로 | Python
·
Online Judge/Baekjoon
https://www.acmicpc.net/problem/10164문제 오른쪽과 아래쪽으로밖에 이동하지 못하는 로봇이 제시된 공간에서 이동하는 경로의 경우의 수를 구하는 문제이다. 만약 동그라미가 표시된 공간이 있다면 반드시 지나야 한다. 풀이 고등학교 확률및통계에 나오는 최단거리 경우의 수를 활용하면 된다. 최단거리가 되는 이유는 로봇이 오른쪽과 아래쪽으로 밖에 못 움직이기 때문이다. 즉 로봇이 오른쪽으로 이동하거나 아래쪽으로 이동하는 두 개의 경우를 나열한 경우의 수를 확인하면 된다.최단거리 문제에서 n×m 에서의 경우의 수는 C(n+m,n), 즉 (n+m)!n!×m! 이다. 그런데 이 경우는 선에서 움직이는 경우이고, 문제는 격자에서..
[Pandas] 데이터프레임 연결(concatenate) 및 결합(merge), 그리고 간단 결합(join)
·
Data Science/Data Processing
데이터 연결 concat(참고링크)를 이용한다. 이 경우 단순히 데이터프레임을 연결하는 것이다. 이때 여러 매개변수를 이용할 수 있다.objs는 연결할 데이터프레임 혹은 시리즈의 리스트나 딕셔너리를 입력받는다.axis는 연결할 축을 설정한다. 기본은 0으로 세로로 연결하는데, 1로 설정하면 가로로 연결한다.join은 연결할 때의 방식을 설정한다. 기본은 "outer"로 설정되어 있는데, 이 경우 모든 인덱스 혹은 열을 합쳐서 연결한다. 만약 "inner"로 설정하면 교집합만 연결한다.ignore_index는 연결 후 새로운 인덱스 부여 여부를 결정한다. 기본적으로 False로 되어 있어 인덱스가 바뀌지 않지만, True로 설정하면 인덱스를 새롭게 설정한다.verify_integrity는 연결하려는 각 데..
[Pandas] 값 혹은 인덱스를 기준으로 데이터프레임 정렬
·
Data Science/Data Processing
값을 기준으로 데이터프레임 정렬 • sort_values 메소드sort_values(참고링크)를 이용하여 데이터프레임의 값을 기준으로 정렬할 수 있다. 기본적으로 sort_values는 정렬한 리스트를 반환한다.예시로는 seaborn의 mpg 데이터셋을 이용하겠다.import seaborn as snsimport pandas as pddf = sns.load_dataset("mpg")mpg 데이터셋을 head로 불러와 확인해보면 아래와 같이 생겼다. mpg cylinders displacement horsepower weight acceleration \0 18.0 8 307.0 130.0 3504 12.0 1 15.0..
[Pandas] 판다스를 통한 데이터 시각화(data visualization)
·
Data Science/Data Processing
데이터 시각화 데이터를 확인할 때 데이터 그 자체로 보면 데이터의 특징을 파악하기 어렵다. 따라서 다양한 방법으로 데이터를 요약하거나 시각화하여 데이터의 특징을 파악하기도 한다.데이터를 파이썬으로 시각화할 때는 seaborn, matplotlib 등의 라이브러리를 사용하는데, 판다스에서도 간단하게는 시각화할 수 있기 때문에 간단하게 데이터의 특징을 파악할 때는 판다스의 메소드를 활용하는 편이 좋을 수 있다.데이터를 시각화할 때는 수치형 데이터와 범주형 데이터를 다르게 시각화하는 것이 일반적이다. 또한 시각화 메소드 또한 수치형 데이터냐, 범주형 데이터냐에 따라 다르게 동작하기 때문에 수치형 데이터를 시각화하는 메소드를 범주형 데이터에 사용하면 당연히 오류가 나기 때문에 미리 데이터의 정보를 파악(참고 링..
[Pandas] 데이터프레임 기초 통계량 확인
·
Data Science/Data Processing
기초 통계량 어떤 데이터가 가지고 있는 성질을 확인하려면 기초 통계량을 확인해야 할 것이다. 이러한 통계량으로는 평균, 중앙값, 분산, 최대값, 최소값, 빈도수 등이 있을 것이다.일단 예시를 위해 임의로 데이터를 불러오자.import seaborn as snsimport pandas as pddf = sns.load_dataset("iris")seaborn의 iris 데이터셋을 불러왔다.iris 데이터셋에는 sepal_length, sepal_width, petal_length, petal_width, species 열이 있는데, 이 중 species 열만 범주형이다. 범주형이 아닌 수치형 자료는 평균, 중앙값 등을 가지는데, 범주형 자료는 빈도수, 종류 등의 통계량을 가진다.기본적으로 통계량은 desc..
[Pandas] 데이터 정보 확인과 미리보기 및 결측치 확인과 처리
·
Data Science/Data Processing
데이터 미리보기 판다스에서 불러온, 혹은 만든 데이터를 간단히 확인할 필요가 있을 때 다양한 메소드를 활용한다.일단 예시를 위해서 데이터를 불러와본다.import seaborn as snsimport pandas as pddf = sns.load_dataset('iris')seaborn의 iris 데이터셋을 불러왔다.먼저 행과 열의 수를 확인해보려면 shape을 확인하면 된다.df.shape출력은 다음과 같다.(150, 5)행과 열 수를 확인하고 데이터 자체를 미리보려면 head, tail, sample을 사용한다.head(참고링크)는 위쪽 데이터를 불러와 보여준다.df.head(5)출력은 다음과 같다. sepal_length sepal_width petal_length petal_width s..
[Pandas] 판다스 csv, 엑셀(xlsx, xls) 불러오기 및 저장하기
·
Data Science/Data Processing
CSV 불러오기 기본적으로 read_csv(참고링크)를 통해 csv 파일을 불러온다. 가장 간단하게는 파일 이름으로 불러올 수 있다.df = pd.read_csv("filename.csv")이때는 이 코드와 csv 파일이 같은 폴더 안에 있어야 한다. 만약 다른 폴더에 있는 파일을 사용하고자 한다면, 경로가 포함된 파일 이름을 넣어야 한다. 예를 들어 csv 파일이 다운로드 폴더에 있다고 한다면 다음과 같이 불러올 수 있다.df = pd.read_csv("C:\\Users\\UsersName\\Downloads\\filename.csv")주의할 것은 경로 복사로 붙여넣으면 C:\Users\...로 되어 있을 수 있는데, \ 가 아니라 \\로 설정해주거나 / 를 사용해주어야 한다.주로 사용하는 매개변수는 ..
애스터로이드