데이터사이언스

4-2. pandas_dataframe

유니진 2023. 1. 24. 01:46

 

dataframe 사용

 

 

1. pandas dataframe 생성하고 출력 

 

 

   - 출력값에서 우리가 넣어주지 않은 0 1 2 가 행, 열에 존재한다.

       => 우리가 column, row 의 이름을 정해주지 않았기 때문에

             pandas dataframe 에서 임의로 이름을 붙여준 것

 

 

 

 

2. 위에 생성한 데이터프레임의 자료형 확인

 

자료형 : pandas

 

 

 

3. column, row 이름 정해주기

 

 

 

 

4. index / column 화긴

 

object : pandas 에선 문자열의 의미  /  int 64 : 64 비트 정수형

 

   - numpy 와 다르게 데이터의 각 자료형들이 모두 동일하지 않음을 확인할 수 있다. 

      => pandas 의 장점

   - 하지만 같은 column 내에서는 자료형이 같아야 한다. 

 

 


 

 

5. From list of lists, array of arrays, list of series

   - 이차원 리스트 / 이차원 numpy array 로 dataframe 만들기

   - pandas 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

 

 

 

6. from dict of lists, dict of arrays, dict of series

   - 파이썬 사전 (dictionary) 로 dataframe 만들기 

   - 사전의 key 로 column 이름을 사용하고 

   - 그 column 에 해당하는 리스트, numpy array, 혹은 pandas series 를 사전의 value 로 넣어준다. 

 

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

 

 

 

7. 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