본 글은 데이터 처리를 위해 자주 사용되는 파이썬의 판다스 라이브러리에 대해
공부한 기초적인 내용을 정리하는 글임을 밝힘.
목차
pandas
1. 판다스의 자료구조
- 데이터를 수집하고 정리하는 데 최적화된 도구
- 오픈소스로 무료라는 장점을 가짐
- 가장 쉬운 언어인 파이썬을 기반으로 함
- 데이터를 다루는 업무의 80%이상을 판다스로 처리
1.1. 판다스 자료구조
- 데이터의 속성은 매우 다양함
- 서로 다른 형식의 데이터를 동일한 형식으로 통합해야 함
- 판다스는 시리즈와 데이터 프레임을 제공함.
1.1.1. 시리즈
데이터가 순차적으로 나열된 1차원 배열
인덱스(key)와 데이터 값(value)가 일대일 대응으로 이루어진 데이터
→ 파이썬 딕셔너리와 유사
인덱스 구조
- 인덱스를 잘 활용하면 값의 탐색,정렬, 선택, 결합을 쉽게 할 수 있음
- 정수형 인덱스가 기본으로 사용되며 직접 이름을 지정할 수도 있음.
2. 데이터 프레임(Dataframe)
2.1. 데이터프레임이란?
- 2차원 배열로 행과 열로 이루어짐
- 여러 개의 시리즈들이 모여서 데이터 프레임을 이룸.
행과 열의 이름도 설정 가능.
- index : 행의 이름
- colums : 열의 이름
2.2. 행/열 활용
구분 | loc 메소드 | iloc 메소드 |
탐색 대상 | 인덱스 이름으로 탐색 | 정수형 위치 인덱스로 탐색 |
범위 지정 | ['a':'c'] → ['a, 'b', 'c'] | [3:7] → 3,4,5,6 |
ⓐ. 행 선택
- loc 메소드는 인덱스의 이름으로 데이터를 선택
- iloc 메소드는 인덱스의 위치로 데이터를 선택
- iloc을 활용하여 범위를 지정하고 슬라이싱 간격을 조정할 수 있음.
- 슬라이싱 간격에 -1을 입력하면 역순으로 정렬
ⓑ. 열 선택
- 열을 하나 선택할 때는 열의 이름으로 선택
- 2개 이상 선택할 때는 []를 사용한 열 이름의 리스트로 선택
ⓒ. 원소 선택
- loc 메소드로 원소를 선택할 떄는 행과 열의 이름으로 선택
- iloc 메소드로 원소를 선택할 때는 행과 열의 인덱스를 계산하여 선택
3. 데이터 프레임 조작
3.1. 행/열 조작
- 주어진 데이터프레임에 새로운 데이터를 추가하거나 삭제할 수 있음.
- 행 추가/삭제
- 열 추가/삭제
- 데이터 프레임 내 특정 값이 잘못된 경우 이를 변경할 수 있음.
- 데이터프레임의 행과 열의 위치를 바꿔서 조작할 수 있음.
- 데이터 프레임 내 행 데이터를 특정 기준에 따라 정렬할 수 있음.
ⓐ. 행 추가
- loc 메소드에 행의 이름과 데이터를 전달하여 새로운 행을 추가
- 열의 개수에 맞게 데이터를 추가해야 함.
- 기존의 행의 이름을 선택하면 데이터를 변경할 수 있음.
ⓑ. 열 추가
- 새로운 열의 이름과 데이터 값을 사용하여 열을 추가
- 하나의 값만 전달하면 모두 같은 값으로 채워짐
- 기존의 열의 이름을 사용하면 해당 열의 데이터를 변경할 수 있음.
ⓒ. 행 삭제
- drop 메소드를 사용하여 해당 이름의 행을 삭제함(axis = 0)
- inplace =True
ⓓ. 열 삭제
- axis =1, drop 메소드 사용
ⓔ. 원소값 변경
- 행과 열의 이름을 사용하여 loc 메소드로 변경
- 행과 열의 인덱스 위치를 사용하여 iloc 메소드로 변경
ⓕ. 행/열 위치 바꾸기 (transpose)
- 2차원 numpy의 transpose 동일하게 작동
- transpose(), T모두 사용 가능
ⓖ. 데이터 프레임 정렬
- index의 순서대로 정렬 → sort_index()
- 특정 value의 순서대로 정렬 → sort_value()
마무리
행과 열에 대해 서로 헷갈리지 말 것!
'IT > Python' 카테고리의 다른 글
[데이터 시각화] Python-라이브러리 matplotlib 기초 내용 정리 (0) | 2023.03.31 |
---|---|
[데이터 처리] Python-pandas 기초 공부 내용 정리(연산, 데이터프레임 구조,통계 추출, 데이터 입출력) (0) | 2023.03.31 |
[데이터 처리] Python-Numpy 라이브러리 기초 내용 정리 (0) | 2023.03.31 |
[Python] 기초 내용 정리 (파일입출력, 클래스, 모듈, 패키지 등) (0) | 2023.03.22 |
[Python] 기초 공부 내용 정리(변수, 자료형, 내장함수) (0) | 2023.03.20 |
댓글