| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
- Python
- 데이터분석가
- 자격증
- 프로젝트
- 스타터스부트캠프
- 취업부트캠프
- MySQL
- 회고록
- 러닝스푼즈
- 2024년
- 부트캠프후기
- AICE
- 코딩테스트
- 프리온보딩
- 유데미
- 데이터분석
- 태블로
- 파이썬
- 실습
- SQL
- 프로그래머스
- 유데미부트캠프
- 자격증준비
- 데이터시각화
- tableau
- Tableau Desktop Specialist
- 쿼리테스트
- 코테
- 유데미코리아
- trouble shooting
- Today
- Total
신이 되고 싶은 갓지이
1. Python 기초 - Pandas에 대한 기본 사용법 정리 본문
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

* 코드가 옆으로 길어질 때에는, \(역슬러시)를 이용하여 코드 중간에 줄바꿈을 할 수도 있다.
'Python' 카테고리의 다른 글
| 3. Python 기초 - Seaborn, Folium으로 시각화 하기 (4) | 2024.01.05 |
|---|---|
| 2. Python 기초 - Pandas를 통해 데이터 병합하고 정리, 집계하기 (3) | 2024.01.04 |
| [python 실습] 아파트 실거래 분석, 시각화 실습 (1) | 2023.03.10 |
| [python 실습] 인구데이터를 통한 분석 실습 (1) | 2023.03.10 |
| [python 실습] 서울시 폭염/열대야 현황 실습 (1) | 2023.03.10 |