파이썬/자료구조

[Python] Series와 Dataframe의 개념, 사용법, 차이점 (in Pandas)

메가구글 2022. 6. 2. 08:30

0. Series 개념

  • Pandas의 일종의 리스트로 정수, 문자열, 실수 등을 포함한다.
  • Pandas Series에서는 0~n의 인덱스를 가지는 리스트를 반환한다. (n은 series의 길이다.)
  • Series은 인덱스와 함께 한개의 리스트만을 갖는다.

 

 

1. Dataframe 개념

  • Series는 Dataframe의 단일 컬럼에 대한 데이터 구조다.
  • Dataframe의 데이터는 메모리에 Series의 데이터들로 저장되어있다. 
  • Series은 모든 데이터 유형을 저장할 수 있는 1차원 배열이다.
  • Dataframe은 2차원 배열로 된 데이터구조로 서로 다른 데이터타입을 칼럼으로 가질 수 있다. 

 

 

2. 간단한 Series 만들기 

from pandas import Series
import pandas as pd

sdata = {'Ohio':35000, 'Texas': 71000, 'Oregon' : 16000}
obj3 = Series(sdata)
obj3

Output :

그림1. 간단한 Series 만들기

 

이 경우 Ohio, Texas, Oregon이라는 인덱스가 생성되었으며, 사전형 데이터도 Series객체로 생성이 가능하다.

만약에 sdata = [35000, 71000, 16000]으로 정의했다면 인덱스가 0,1,2로 생성됐을 것이다.

 

 

 

3. Series을 결합해서 Dataframe 만들기

import pandas as pd
  
name = ['Cho', 'Kim', 'Sim', 'Joo']
height = [170, 183, 189, 175]
  
name_series = pd.Series(name)
height_series = pd.Series(height)
  
frame = { 'Name': name_series, 'Height': height_series }
  
result = pd.DataFrame(frame)
  
print(result)

Output :

그림2. Series 이용해서 Dataframe 만들기

 

 

4. Dataframe에 Series 외부 데이터 추가하기

import pandas as pd
  
name = ['Cho', 'Kim', 'Sim', 'Joo']
height = [170, 183, 189, 175]
  
name_series = pd.Series(name)
height_series = pd.Series(height)
  
frame = { 'Name': name_series, 'Height': height_series }
  
result = pd.DataFrame(frame)

age = [21, 23, 35, 27]
result['Age'] = pd.Series(age)
  
print(result)

Output :

그림3. Dataframe에 외부 Series 추가하기

 

 

 

5. Dataframe로 그래프 그리기

import pandas as pd
import matplotlib.pyplot as plt
  
name = ['Cho', 'Kim', 'Sim', 'Joo']
height = [170, 183, 189, 175]
  
name_series = pd.Series(name)
height_series = pd.Series(height)
  
frame = { 'Name': name_series, 'Height': height_series }
  
result = pd.DataFrame(frame)

age = [21, 23, 35, 27]
result['Age'] = pd.Series(age)
  
result.plot.bar()
plt.show()

Output :

그림4. 주어진 데이터로 그림그리기

 

 

 

 

참고사이트

https://www.geeksforgeeks.org/creating-a-dataframe-from-pandas-series/

https://stackoverflow.com/questions/26047209/what-is-the-difference-between-a-pandas-series-and-a-single-column-dataframe