데이터를 데이터프레임으로 읽어오기

Tip학습 목표
  • Pandas 라이브러리를 임포트(import)합니다.
  • Pandas를 사용하여 CSV 데이터 파일을 불러옵니다.
  • Pandas 데이터프레임의 기본 구조와 정보를 파악합니다.
Note질문
  • 표 형태의 데이터를 어떻게 효율적으로 읽고 확인할 수 있나요?

표 데이터 분석을 위한 Pandas 라이브러리

  • Pandas는 파이썬에서 표 형태의 데이터를 다루는 데 가장 널리 쓰이는 라이브러리입니다.
  • 행(row)과 열(column)로 구성된 2차원 표 구조인 데이터프레임(DataFrame)을 제공합니다.
  • import pandas as pd와 같이 관습적으로 pd라는 별칭을 사용하여 로드합니다.
  • pd.read_csv() 함수를 사용하여 CSV 파일을 읽고 데이터프레임 객체로 변환합니다.
import pandas as pd

data_oceania = pd.read_csv('data/gapminder_gdp_oceania.csv')
print(data_oceania)
       country  gdpPercap_1952  gdpPercap_1957  gdpPercap_1962  \
0    Australia     10039.59564     10949.64959     12217.22686   
1  New Zealand     10556.57566     12247.39532     13175.67800   

   gdpPercap_1967  gdpPercap_1972  gdpPercap_1977  gdpPercap_1982  \
0     14526.12465     16788.62948     18334.19751     19477.00928   
1     14463.91893     16046.03728     16233.71770     17632.41040   

   gdpPercap_1987  gdpPercap_1992  gdpPercap_1997  gdpPercap_2002  \
0     21888.88903     23424.76683     26997.93657     30687.75473   
1     19007.19129     18363.32494     21050.41377     23189.80135   

   gdpPercap_2007  
0     34435.36744  
1     25185.00911  
  • 데이터프레임에서 열은 변수(variables), 행은 개별 관측치(observations)를 나타냅니다.
  • 데이터프레임의 이름을 지을 때는 데이터의 출처나 특징이 드러나도록 명확하게 짓는 것이 관리에 도움이 됩니다.
Note파일 경로 주의사항

데이터 파일이 data 폴더 안에 있다면 경로에 반드시 data/를 포함해야 합니다. 경로가 틀리면 파일을 찾을 수 없다는 FileNotFoundError가 발생합니다.

인덱스 열 지정: index_col

  • 기본적으로 행 번호(0, 1, 2…)가 인덱스로 사용되지만, 특정 열을 행의 제목(인덱스)으로 지정할 수 있습니다.
  • read_csv() 함수의 index_col 매개변수에 열 이름을 전달합니다.
data_oceania_country = pd.read_csv('data/gapminder_gdp_oceania.csv', index_col='country')
print(data_oceania_country)
             gdpPercap_1952  gdpPercap_1957  gdpPercap_1962  gdpPercap_1967  \
country                                                                       
Australia       10039.59564     10949.64959     12217.22686     14526.12465   
New Zealand     10556.57566     12247.39532     13175.67800     14463.91893   

             gdpPercap_1972  gdpPercap_1977  gdpPercap_1982  gdpPercap_1987  \
country                                                                       
Australia       16788.62948     18334.19751     19477.00928     21888.88903   
New Zealand     16046.03728     16233.71770     17632.41040     19007.19129   

             gdpPercap_1992  gdpPercap_1997  gdpPercap_2002  gdpPercap_2007  
country                                                                      
Australia       23424.76683     26997.93657     30687.75473     34435.36744  
New Zealand     18363.32494     21050.41377     23189.80135     25185.00911  

데이터프레임 정보 확인: info()

  • info() 메서드를 사용하면 데이터의 타입, 행과 열의 개수, 메모리 사용량 등을 한눈에 볼 수 있습니다.
data_oceania_country.info()
<class 'pandas.DataFrame'>
Index: 2 entries, Australia to New Zealand
Data columns (total 12 columns):
 #   Column          Non-Null Count  Dtype  
---  ------          --------------  -----  
 0   gdpPercap_1952  2 non-null      float64
 1   gdpPercap_1957  2 non-null      float64
 2   gdpPercap_1962  2 non-null      float64
 3   gdpPercap_1967  2 non-null      float64
 4   gdpPercap_1972  2 non-null      float64
 5   gdpPercap_1977  2 non-null      float64
 6   gdpPercap_1982  2 non-null      float64
 7   gdpPercap_1987  2 non-null      float64
 8   gdpPercap_1992  2 non-null      float64
 9   gdpPercap_1997  2 non-null      float64
 10  gdpPercap_2002  2 non-null      float64
 11  gdpPercap_2007  2 non-null      float64
dtypes: float64(12)
memory usage: 208.0+ bytes

열 정보 확인: columns

  • DataFrame.columns는 데이터프레임의 열 이름을 담고 있는 속성(멤버 변수)입니다. 함수가 아니므로 괄호 ()를 붙이지 않습니다.
print(data_oceania_country.columns)
Index(['gdpPercap_1952', 'gdpPercap_1957', 'gdpPercap_1962', 'gdpPercap_1967',
       'gdpPercap_1972', 'gdpPercap_1977', 'gdpPercap_1982', 'gdpPercap_1987',
       'gdpPercap_1992', 'gdpPercap_1997', 'gdpPercap_2002', 'gdpPercap_2007'],
      dtype='str')

데이터프레임 전치: T

  • 행과 열을 서로 바꾸고 싶을 때 .T 속성을 사용합니다. 실제 데이터를 복사하지 않고 보여주는 방식만 바꿉니다.
print(data_oceania_country.T)
country           Australia  New Zealand
gdpPercap_1952  10039.59564  10556.57566
gdpPercap_1957  10949.64959  12247.39532
gdpPercap_1962  12217.22686  13175.67800
gdpPercap_1967  14526.12465  14463.91893
gdpPercap_1972  16788.62948  16046.03728
gdpPercap_1977  18334.19751  16233.71770
gdpPercap_1982  19477.00928  17632.41040
gdpPercap_1987  21888.88903  19007.19129
gdpPercap_1992  23424.76683  18363.32494
gdpPercap_1997  26997.93657  21050.41377
gdpPercap_2002  30687.75473  23189.80135
gdpPercap_2007  34435.36744  25185.00911

요약 통계 확인: describe()

  • describe() 메서드는 숫자형 데이터를 가진 열에 대해 개수, 평균, 표준편차, 최솟값, 최댓값 등의 요약 통계를 제공합니다.
print(data_oceania_country.describe())
       gdpPercap_1952  gdpPercap_1957  gdpPercap_1962  gdpPercap_1967  \
count        2.000000        2.000000        2.000000        2.000000   
mean     10298.085650    11598.522455    12696.452430    14495.021790   
std        365.560078      917.644806      677.727301       43.986086   
min      10039.595640    10949.649590    12217.226860    14463.918930   
25%      10168.840645    11274.086022    12456.839645    14479.470360   
50%      10298.085650    11598.522455    12696.452430    14495.021790   
75%      10427.330655    11922.958888    12936.065215    14510.573220   
max      10556.575660    12247.395320    13175.678000    14526.124650   

       gdpPercap_1972  gdpPercap_1977  gdpPercap_1982  gdpPercap_1987  \
count         2.00000        2.000000        2.000000        2.000000   
mean      16417.33338    17283.957605    18554.709840    20448.040160   
std         525.09198     1485.263517     1304.328377     2037.668013   
min       16046.03728    16233.717700    17632.410400    19007.191290   
25%       16231.68533    16758.837652    18093.560120    19727.615725   
50%       16417.33338    17283.957605    18554.709840    20448.040160   
75%       16602.98143    17809.077558    19015.859560    21168.464595   
max       16788.62948    18334.197510    19477.009280    21888.889030   

       gdpPercap_1992  gdpPercap_1997  gdpPercap_2002  gdpPercap_2007  
count        2.000000        2.000000        2.000000        2.000000  
mean     20894.045885    24024.175170    26938.778040    29810.188275  
std       3578.979883     4205.533703     5301.853680     6540.991104  
min      18363.324940    21050.413770    23189.801350    25185.009110  
25%      19628.685412    22537.294470    25064.289695    27497.598692  
50%      20894.045885    24024.175170    26938.778040    29810.188275  
75%      22159.406358    25511.055870    28813.266385    32122.777858  
max      23424.766830    26997.936570    30687.754730    34435.367440  

Important연습 문제

데이터 읽기 및 확인

data/gapminder_gdp_americas.csv 파일을 읽어 data_americas 변수에 저장하고, 국가명을 인덱스로 지정한 뒤 요약 통계를 확인해 보세요.

data_americas = pd.read_csv('data/gapminder_gdp_americas.csv', index_col='country')
print(data_americas.describe())
Important연습 문제

처음과 마지막 데이터 보기

head(n)tail(n) 메서드를 사용하여 데이터의 일부분을 확인할 수 있습니다.

  1. 아메리카 데이터의 처음 3개 행을 출력해 보세요.
  2. 아메리카 데이터의 마지막 3개 열을 출력해 보세요. (힌트: 전치 T 활용)
  1. data_americas.head(3)
  2. data_americas.T.tail(3).T (행과 열을 바꾼 뒤 마지막 3행을 추출하고 다시 원래대로 뒤집습니다.)
Note핵심 요약
  • Pandas를 사용하여 표 형태의 데이터를 쉽게 읽고 관리할 수 있습니다.
  • read_csv()로 파일을 불러오고 index_col로 인덱스를 지정합니다.
  • info(), describe(), head(), tail() 등을 사용하여 데이터의 구조와 내용을 빠르게 파악합니다.
  • .T 속성으로 행과 열을 바꿀 수 있습니다.