본문 바로가기

Data handling/Pandas

[Pandas] 외부 데이터 읽기: csv, txt, json

외부 데이터 읽기

판다스는 CSV, txt, Excel, HTML, JSON 등 다양한 데이터 파일을 읽고 데이터프레임을 생성할 수 있습니다.

# 예시 1: csv 파일 읽기

data = pd.read_csv(r"C:\Users\user\OneDrive\바탕화면\Hyowon\Dataset\titanic\train.csv")

 

read_csv(file_path, sep='')

 

데이터를 나누는 기준은 sep로 인자를 따로 넘겨줄 수 있습니다.

read_csv 메서드는 특히 텍스트 파일을 다룰 때 유용합니다.

 

이렇게 읽어온 외부 데이터는 판다스에서 주어진 다양한 메서드를 통해 그 형태와 특성을 파악할 수 있습니다.

 

다음은 유용한 메서드들과 그에 대한 설명 및 코드입니다!

 

data.head() , data.tail()

data.head()는 불러온 데이터의 상위 5개를 출력합니다.

data.tail()은 반대로 하위 5개를 출력합니다.

 

인자로 출력하고 싶은 데이터의 개수를 넘겨줄 수 있습니다.

data.head(5)
data.tail(10)

data.shape

data.shape는 DataFrame의 행과 열 크기를 알아보는 가장 좋은 방법입니다.
DataFrame 객체의 shape 변수는 그것의 행과 열을 튜플 형태로 반환합니다.

data.shape # (row, col)

data.info()

DataFrame은 칼럼의 타입, Null 데이터의 개수, 데이터 분포도 등의 메타 데이터 등의 조회가 가능합니다.

info() 메서드는 총 데이터 건수, 칼럼 별 데이터 타입, Null 건수를 알 수 있습니다.

data.info()

 

[OUTPUT]
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 891 entries, 0 to 890
Data columns (total 12 columns):
 #   Column       Non-Null Count  Dtype  
---  ------       --------------  -----  
 0   PassengerId  891 non-null    int64  
 1   Survived     891 non-null    int64  
 2   Pclass       891 non-null    int64  
 3   Name         891 non-null    object 
 4   Sex          891 non-null    object 
 5   Age          714 non-null    float64
 6   SibSp        891 non-null    int64  
 7   Parch        891 non-null    int64  
 8   Ticket       891 non-null    object 
 9   Fare         891 non-null    float64
 10  Cabin        204 non-null    object 
 11  Embarked     889 non-null    object 
dtypes: float64(2), int64(5), object(5)
memory usage: 83.7+ KB

data.describe()

describe()메서드는 칼럼 별 숫자형 데이터(int, float)의 n-percentile 분포도, 평균값, 최댓값, 최솟값을 나타냅니다.

데이터의 분포를 아는 것은 머신러닝 알고리즘의 성능을 향상하는 아주 중요한 요소입니다. 물론 이 메서드로 정확한 분포도를 아는 것은 무리지만, 개략적인 수준의 분포도를 확인할 수 있어 매우 유용합니다.

data.describe()

 

[OUTPUT]

    PassengerId    Survived    Pclass    Age    SibSp    Parch    Fare
count    891.000000    891.000000    891.000000    714.000000    891.000000    891.000000    891.000000
mean    446.000000    0.383838    2.308642    29.699118    0.523008    0.381594    32.204208
std    257.353842    0.486592    0.836071    14.526497    1.102743    0.806057    49.693429
min    1.000000    0.000000    1.000000    0.420000    0.000000    0.000000    0.000000
25%    223.500000    0.000000    2.000000    20.125000    0.000000    0.000000    7.910400
50%    446.000000    0.000000    3.000000    28.000000    0.000000    0.000000    14.454200
75%    668.500000    1.000000    3.000000    38.000000    1.000000    0.000000    31.000000
max    891.000000    1.000000    3.000000    80.000000    8.000000    6.000000    512.329200
  • count : Not Null인 데이터 건수

  • mean : 전체 평균

  • std : 표준 편차

  • min : 최솟값

  • 25% : 25-percentile

  • 50% : 50-percentile

  • 75% : 75-percentile

  • max : 최댓값

data['COL_NAME'].value_counts()

해당 칼럼의 분포가 어떻게 되는지 개수를 세어 주는 메서드입니다.

다중 분류(Classification) 문제를 파악할 때 유용합니다! 다른 말로는, class가 있을 때 의미 있는 메서드입니다.

data['Pclass'].value_counts()

 

[OUTPUT]
3    491
1    216
2    184
Name: Pclass, dtype: int64

Pclass의 각 요소는 1,2,3 중 하나로 태깅되어 있습니다. value_counts() 메서드는 각 변수 값의 개수를 세어줍니다. 

 

알아두면 굉장히 편한 메서드입니다!

'Data handling > Pandas' 카테고리의 다른 글

[Pandas] DataFrame의 수정과 삭제  (0) 2020.06.12
[Pandas] Series, DataFrame의 이해와 생성  (0) 2020.06.10

출처: https://privatedevelopnote.tistory.com/81 [개인노트]