Python/Pandas

[Pandas] DataFrame이란?

공기반 코딩반 2023. 12. 26. 09:32
반응형

DataFrame

  • 표 형식의 데이터
  • 2차원 형태의 데이터를 다루기 위한 자료형(대부분의 자료는 2차원 형태임)
  • 행(Row/Index) : 레코드 , 열(Column)  : 데이터 특징

 

Numpy와의 차이점

  • Pandas는 Numpy를 기반으로 만들어짐
  • Numpy + 행/열에 이름 붙이기 기능(문자열, 숫자 다가능 : 다양한 자료형)

 

Pandas vs Numpy

import pandas as pd
import numpy as np
two_dimensional_list = [['dongwook', 50, 85], ['sineui', 89, 31], ['iljoong', 68, 91], ['yoonseo', 88, 75]]

print(np.array([two_dimensional_list]))
df = pd.DataFrame(two_dimensional_list, columns=['name', 'ENG', "MATH"], index=['a', 'b', 'c', 'd'])
# print(type(df))
print(df)
# numpy 출력
[[['dongwook' '50' '85']
  ['sineui' '89' '31']
  ['iljoong' '68' '91']
  ['yoonseo' '88' '75']]]
  
  
  # pandas 출력
  name  ENG  MATH
a  dongwook   50    85
b    sineui   89    31
c   iljoong   68    91
d   yoonseo   88    75

 

 

Columns 변수

: 열 이름 붙이기

df = pd.DataFrame(two_dimensional_list, columns=['name', 'ENG', "MATH"])

 

- List에 컬림 변수 넣어줌

 

 

 

 

Index 변수

df = pd.DataFrame(two_dimensional_list, columns=['name', 'ENG', "MATH"], index=['a', 'b', 'c', 'd'])

: 행에 이름 붙이기

 

 

 

 

 

DataFrame 정보

같은 컬럼 내에서는 같은 자료형

 

print(df.columns)
print(df.index)
print(df.dtypes)

 

 

 

 

 

 


 

2차원 데이터 → DataFrame

list, array, series → DataFrame

import numpy as np
import pandas as pd

two_dimensional_list = [['dongwook', 50, 86], ['sineui', 89, 31], ['ikjoong', 68, 91], ['yoonsoo', 88, 75]]
two_dimensional_array = np.array(two_dimensional_list)
list_of_series = [
    pd.Series(['dongwook', 50, 86]), 
    pd.Series(['sineui', 89, 31]), 
    pd.Series(['ikjoong', 68, 91]), 
    pd.Series(['yoonsoo', 88, 75])
]

# 아래 셋은 모두 동일
df1 = pd.DataFrame(two_dimensional_list)
df2 = pd.DataFrame(two_dimensional_array)
df3 = pd.DataFrame(list_of_series)

print(df1)
          0   1   2
0  dongwook  50  86
1    sineui  89  31
2   ikjoong  68  91
3   yoonsoo  88  75

 

 

 

Dictionary Data → DataFrame

- From dict of lists, dict of arrays, dict of series

- 리스트가 담긴 사전 → DataFrame

import numpy as np
import pandas as pd

names = ['dongwook', 'sineui', 'ikjoong', 'yoonsoo']
english_scores = [50, 89, 68, 88]
math_scores = [86, 31, 91, 75]

dict1 = {
    'name': names, 
    'english_score': english_scores, 
    'math_score': math_scores
}

dict2 = {
    'name': np.array(names), 
    'english_score': np.array(english_scores), 
    'math_score': np.array(math_scores)
}

dict3 = {
    'name': pd.Series(names), 
    'english_score': pd.Series(english_scores), 
    'math_score': pd.Series(math_scores)
}


# 아래 셋은 모두 동일합니다
df1 = pd.DataFrame(dict1)
df2 = pd.DataFrame(dict2)
df3 = pd.DataFrame(dict3)

print(df1)

 

       name  english_score  math_score
0  dongwook             50          86
1    sineui             89          31
2   ikjoong             68          91
3   yoonsoo             88          75

'

 

 

From list of dicts

: 사전이 담긴 리스트 → DataFrame

 

import numpy as np
import pandas as pd

my_list = [
    {'name': 'dongwook', 'english_score': 50, 'math_score': 86},
    {'name': 'sineui', 'english_score': 89, 'math_score': 31},
    {'name': 'ikjoong', 'english_score': 68, 'math_score': 91},
    {'name': 'yoonsoo', 'english_score': 88, 'math_score': 75}
]

df = pd.DataFrame(my_list)
print(df)

 

   english_score  math_score      name
0             50          86  dongwook
1             89          31    sineui
2             68          91   ikjoong
3             88          75   yoonsoo

 

 

 

 

 


 

Pandas의 dtype

코드

print(df.dtypes)

 

출력

name             object
english_score     int64
math_score        int64
dtype: object

 

종류

Pandas의 dtype

반응형

'Python > Pandas' 카테고리의 다른 글

[Pandas] DataFrame 값 쓰기  (0) 2023.12.31
[Pandas] 숫자 인덱싱  (0) 2023.12.30
[Pandas] DataFrame 인덱싱  (0) 2023.12.29
[Pandas] csv 데이터 불러오기  (2) 2023.12.27
[Pandas] Pandas vs R  (0) 2023.12.25