Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
Tags
- aws jupyter notebook
- 코딩테스트
- 선그래프
- NumPy
- dataframe
- 프로그래머스
- 파이썬
- Algorithm
- 노마드코딩
- MySQL
- python
- String Method
- type hint
- pandas
- Stack
- openCV
- 백준
- queue
- 가상환경
- 자료구조
- 정보처리기사 c언어
- Join
- 알고리즘
- 데이터시각화
- 알고리즘스터디
- Matplotlib
- programmers
- Selenium
- javascript
- 알고리즘 스터디
Archives
- Today
- Total
조금씩 꾸준히 완성을 향해
[Pandas] Pandas의 개념 & Series 객체 생성하고 다루기 본문
Pandas
- python의 데이터 분석 라이브러리 -> 데이터 테이블을 다루는 도구 (정형 데이터)
- 기본적으로 numpy를 사용
- numpy : python에서 배열을 다루는 최적의 라이브러리
- pandas는 numpy를 효율적으로 사용하기 위해 인덱싱, 연산, 전처리 등 다양한 함수 제공
Pandas의 개념
- Data Frame : 데이터 테이블 전체 객체
- Series : 각 열 데이터를 다루는 객체
Series
- Feature Vector 와 같은 개념
- 일반적으로 하나의 피쳐 데이터를 포함하는 형태
- 생성된 데이터 프레임 안에 포함될 수 있음
- list, dict, ndarray 등 다양한 데이터 타입이 시리즈 객체 형태로 변환되기도 함.
- 시리즈 객체를 생성하면 세 가지 요소(property) 생성
- Data : 기존 다른 객체처럼 값을 저저장하는 요소
- Index: 항상 0부터 시작하고, 숫자로만 할당하는 값
- 시리즈 객체에서는 숫자, 문자열, 0 이외의 값으로 시작하는 숫자, 순서가 일정하지 않은 숫자를 입력할 수도 있음
- 시리즈 객체에서는 인덱스 값의 중복을 허용 - Data type : 넘파이의 데이터 타입과 일정하지 일치
- 판다스는 넘파이의 Wrapper 라이브러리
- 넘파이의 모든 기능 지원하고 데이터 타입도 그대로 적용
Series 객체 생성
데이터 프레임 객체를 먼저 생성하고 각 열에서 시리즈 객체를 뽑는 것이 일반적인 방법
- Pandas 모듈 호출
import pandas as pd
import numpy as np
- List > Series
list_data = [1,2,3,4,5]
pd.Series(list_data)
- 판다스의 모든 객체는 인덱스 값을 기준으로 생성
list_data = [1,2,3,4,5]
list_name = ['a', 'b', 'c', 'd', 'e']
pd.Series(data = list_data, index = list_name)
- 기존 데이터에 인덱스 값을 추가하면 NaN값 출력
dict_data = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
indexes = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
pd.Series(dict_data, index = indexes)
- 다양한 시퀀스형 데이터 타입으로 저장가능
dict_data = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
pd.Series(dict_data, dtype=np.float32)
- 이름 지정하여 저장 가능
dict_data = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
pd.Series(dict_data, dtype=np.float32, name='example_data')
- 시리즈 정보 확인
x = pd.Series(dict_data, dtype=np.float32, name='example_data')
type(x) # 시리즈의 타입
# pandas.core.series.Series
print(x.values) # 시리즈의 values
#[1. 2. 3. 4. 5.]
print(x.index) # 시리즈의 index
#Index(['a', 'b', 'c', 'd', 'e'], dtype='object')
print(x.dtype) # 시리즈의 데이터타입
#float32
print(type(x.values)) # 시리즈 values의 타입
#<class 'numpy.ndarray'>
print(x.name) # 시리즈의 이름
#example_data
- 객체 이름, index 이름 변경
x.name = "new" # 객체 이름 변경
x.index.name = "id" # index의 이름 지정가능
x
시리즈에서 데이터 추출하기
print(x[0]) # x의 1번째 원소 선택
# 1.0
print(x['b']) # b 라벨을 가진 원소 선택
# 2.0
print(x[['c','e']]) # c와 e 원소를 선택
print(x[[2, 4]]) # 2와 4 index를 선택
print(x['b':'d']) # b에서 d까지의 원소 선택 (python slicing과 달리 end 값이 포함된다)
'Python > Numpy & Pandas' 카테고리의 다른 글
[Pandas] 행과 열 다루기(삭제, 선택, 추가, 변경) (0) | 2022.09.29 |
---|---|
[Pandas] DataFrame 객체 생성과 변경 (0) | 2022.09.25 |
[Numpy] 비교 연산(Comparison Operators) (0) | 2022.09.25 |
[Numpy] 배열 연산(산술 연산, 내적 연산, Broadcasting) (0) | 2022.09.25 |
[Numpy] 배열의 구조 변경 (reshape, flatten, newaxis) (0) | 2022.09.23 |