시리즈(Series)
1차원 배열과 같은 데이터 구조
인덱스(Index)와 데이터 값(Value)이 쌍으로 구성
import pandas as pd
#시리즈 생성 예시
s = pd.Series([10,20,30,40], index=['a','b','c','d'])
print(s)
#출력
#a 10
#b 20
#c 30
#d 40
#dtype: int64
s_2=pd.Series([10.0,20,30,40], index=['a','b','c','d'])
print(s_2)
#출력
#a 10.0
#b 20.0
#c 30.0
#d 40.0
#dtype: float64
-> 시리즈는 내부적으로 같은 dtype을 가짐
s는 value가 모두 정수형으로 시리즈 데이터타입이 int로 출력된 것을 볼 수 있다.
s_2는 value 중 10.0만 실수형으로 넣어줬는데 데이터타입이 float으로 출력된 것을 볼 수 있다.
데이터프레임(DataFrame)
2차원 표 형태 데이터 구조-행(row)과 열(column)로 구성된 2차원 데이터
여러개의 시리즈(Series)가 모여서 만들어짐
#데이터프레임 생성 예시
data = {'이름':['철수','영희','민수'],
'나이':[25,30,35],
'직업':['학생','회사원','프리랜서']
}
df = pd.DataFrame(data)
print(df)
#출력
# 이름 나이 직업
# 0 철수 25 학생
# 1 영희 30 회사원
# 2 민수 35 프리랜서
다양한 데이터 타입을 각 열에 담을 수 있음
인덱스와 컬럼명을 사용해 특정 데이터에 접근 가능
*딕셔너리 형식으로 DataFrame을 만들 때, 각 Key의 값(Value)의 길이(갯수)맞춰줘야함
Series | DataFrame | |
차이점 | 1차원 하나의 dtype |
2차원 다양한 dtype 허용 |
공통점 | 둘 다 인덱스를 가지고 있어 데이터에 쉽게 접근 가능 Pandas에서 가장 기본적인 데이터 구조 |
특정 열을 시리즈로 선택
age_series = df['나이']
print(age_series)
#출력
#0 25
#1 30
#2 35
#Name: 나이, dtype: int64
Index지정해주기(Index변경)
#inplace=False
df.set_index('이름', inplace=False)
#출력
# 나이 직업
#이름
#철수 25 학생
#영희 30 회사원
#민수 35 프리랜서
#원본 유지
df
#출력
# 이름 나이 직업
#0 철수 25 학생
#1 영희 30 회사원
#2 민수 35 프리랜서
#inplace=True, df_name이라는 새로운 값에 저장
df_name= df.set_index('이름', inplace=True)
df_name
#출력
# 나이 직업
#이름
#철수 25 학생
#영희 30 회사원
#민수 35 프리랜서
"""
#inplace=True만 해준다면 원본훼손(원본자체를 변경하고 싶다면 다른 값에 저장해줄 필요가 없다.)
df.set_index('이름', inplace=True)
df
#출력
# 나이 직업
#이름
#철수 25 학생
#영희 30 회사원
#민수 35 프리랜서
#출력
"""
Index로 데이터 접근
df_name['나이']['철수']
#출력
#25
'Python to AI' 카테고리의 다른 글
Python - NumPy(feat. Broadcasting) (1) | 2024.12.02 |
---|---|
Python - NumPy (3) | 2024.11.29 |
Python - Pandas설치 및 Conda, Jupyter Notebook, 가상환경과 kernel (1) | 2024.11.26 |
Python - Pandas (4) | 2024.11.25 |
MVT(Model-View-Template) design pattern에 기반을 둔 Django의 architecture (3) | 2024.11.15 |