Python to AI

Python - Pandas(Series/DataFrame)

최 수빈 2024. 11. 27. 11:17

 

시리즈(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