신이 되고 싶은 갓지이

1. Python 기초 - Pandas에 대한 기본 사용법 정리 본문

Python

1. Python 기초 - Pandas에 대한 기본 사용법 정리

갓지이 2024. 1. 2. 14:23

1. Pandas의 데이터 구조

- DataFrame : index, colunms을 갖는 표 형태의 데이터

- Series : DataFrame의 colunms을 갖는 형태의 데이터 

# 판다스를 사용하기 위해 라이브러리를 불러오기
import pandas as pd      # "pandas  라는 라이브러리를 사용하고, 이름은 pd 라고 짧게 부를께" 라는 의미

 

2. 데이터 불러오기

* 파일 경로를 불러오는데 절대경로상대경로 두가지 방법이 있다. 

 

- 절대경로 : "c:/상위폴더/하위폴더/파일명.확장자" 처럼 c:부터 지정하는 방법

- 상대경로 : "./폴더/파일명.화장자" 처럼 현재위치(쥬피터 노트북 파일 위치)를 기준으로 지정하는 방법

                (./ 는 현재 위치, ../는 상위 폴더 위치를 의미)

 

 # 엑셀파일에서 불러온 exam이라는 데이터프레임 자료를 temp 라는 이름으로 지정 
temp = pd.read_excel('./data/exam.xlsx')

 

 

3. 데이터 확인하기

분석하기 전엔 데이터의 형태와 기본 내용을 확인해봐야한다. 

# 상단의 데이터 확인
temp.head()

# 인덱스와 컬럼의 데이터 개수/종류를 확인
temp.info()

# 수치형 데이터(int, float)가 들어있는 컬럼의 기초통계량(개수, 평균, 표준편차, 사분위 등)을 확인
temp.describe()

 

 

4. 인덱스 변경

1)  존재하는 컬럼을 인덱스로

- df.set_index('컬럼명') : 컬럼을 인덱스로 전환

- pd.read_excel('./경로명/파일명', index_col= 번호 / '컬럼명') : 컬럼 번호나 컬럼명으로 통해 인덱스로 지정

# 컬럼을 인덱스로 전환
data = temp.set_index('번호')  # '번호' 컬럼이 인덱스로 전환됨

# 파일 데이터 불러들일때 인덱스 컬럼 미리 지정 
data2 = pd.read_excel('./data/exam.xlsx', index_col = 0)   
				# index_col = 0 : 첫 컬럼을 인덱스로 지정한다는 의미 (컬럼명 사용 가능)
                
data3 = pd.read_excel('./data/exam.xlsx', index_col = '번호')

 

2) 새로운 인덱스로 변경

- df.index = ['변경할 인덱스명1', '변경할 인덱스명2', .., '변경할 인덱스명']

data.index = ['가반', '나반', '다반']

 

3) 새로운 컬럼으로 변경

- df.columns = ['변경할 컬럼명1', '변경할 컬럼명2', .., '변경할 컬럼명']

data.columns = ['Korean','English', 'Math']

 

4) 인덱스 초기화

- reset_index() : 현재 인덱스를 초기화하여 0부터 시작하는 정수로 변경

data.reset_index()

 

* reset_index(drop = True) 명령어를 이용하면 현재 인덱스에 있는 값을 컬럼으로 변경하지 않으면서 인덱스를 초기화 할 수 있다. 

data.reset_index(drop = True)

 

5. 데이터 선택하기

1) 하나의 데이터 선택

- df.iloc[ 로우, 컬럼 ] : 인덱스번호로 선택하기
- df.loc[ 로우 , 컬럼 ] : 이름으로 선택하기

 

* 데이터의 번호는 항상 '0'에서 부터 시작이다. 

print(data.loc['3번','영어'])
print(data.iloc[2, 1])
# 결과는 둘다 '100'으로 동일하다.

 

 

2) 여러개의 데이터 선택

- df.loc [ 인덱스명 , 컬럼명 ]

- df.iloc[ 인덱스번호 , 컬럼번호 ]

 

* 인덱스/컬럼 정보 [조건1, 조건2, ...조건3] 리스트 형태로 여러개 입력 or, 시작:종료 형태로 범위 지정 가능

data.loc['1번', ['국어','영어']]
data.loc['1번':, '영어']

data.iloc[1:2,0]
data.iloc[1,[2,0]]
# 리스트 형태의 경우 작성 순서대로 출력된다.

 

 

6. 컬럼 선택하기

1) 하나의 컬럼 선택

* 하나의 컬럼을 전체 선택하는 data.loc[ : , 컬럼명] 은 아래와 같이 줄여서 사용할 수도 있다.

- data.컬럼

- data['컬럼명']

# 모든 학생들의 수학 점수를 선택
data.loc[ : , '수학']
data['수학']
data.수학

 

 

2) 여러개의 컬럼 선택

- data[ ['컬럼명1', '컬럼명2','컬럼명3',...,'컬럼명' ] ]

data[['수학','영어']]

 

 

7. 특정 조건을 만족하는 데이터 선택

1) 한개의 조건 만족

- pd[ condition ] : True 인 데이터만 출력됨

* conditon : True / False 로 구성된 리스트 / 시리즈

# 수학점수가 80점 미만인 데이터 추출
cond = data['수학'] < 80
data[ cond ]

#1번     True
#2번     True
#3번    False

 

 

2) 여러개의 조건 만족 

* 조건을 모두 만족해야 하는 경우(&), 하나라도 만족하면 되는 경우(|)

 

& : "and", 모두 만족하면 True

  • True & True = True
  • True & False = False
  • False & False = False

| : "or", 하나만 만족하면 True

  • True | True = True
  • False | False = False
  • True | False = True
# 영어나 수학 둘 중 하나라도 80 넘는 경우
cond3 = (data['영어'] > 80)
cond4 = (data['수학'] > 80)

data[cond3|cond4]    # cond3 이 True 이거나  cond4 가 True  --> 둘 중 하나라도 True이면 True

 

* 코드가 옆으로 길어질 때에는, \(역슬러시)를 이용하여 코드 중간에 줄바꿈을 할 수도 있다.