데이터 과학 - 데이터 준비


데이터를 분석하기 전에 데이터 과학자는 데이터를 추출하여 깨끗하고 가치 있게 만들어야 합니다.


Pandas로 데이터 추출 및 읽기

데이터를 분석하려면 먼저 가져오기/추출해야 합니다.

아래 예에서는 Python에서 Pandas를 사용하여 데이터를 가져오는 방법을 보여줍니다.

함수를 사용 read_csv()하여 건강 데이터가 포함된 CSV 파일을 가져옵니다.

예시

import pandas as pd

health_data = pd.read_csv("data.csv", header=0, sep=",")

print(health_data)

예시 설명

  • Pandas 라이브러리 가져오기
  • 데이터 프레임의 이름을 health_data.
  • header=0변수 이름에 대한 헤더가 첫 번째 행에서 발견됨을 의미합니다(0은 Python에서 첫 번째 행을 의미함)
  • sep=","값 사이의 구분 기호로 ","가 사용됨을 의미합니다. 이는 .csv(쉼표로 구분된 값) 파일 형식을 사용하기 때문입니다.

팁: 큰 CSV 파일이 있는 경우 이 head()기능을 사용하여 상위 5개 행만 표시할 수 있습니다.

예시

import pandas as pd

health_data = pd.read_csv("data.csv", header=0, sep=",")

print(health_data.head())

데이터 정리

가져온 데이터를 보십시오. 보시다시피 데이터는 잘못되거나 등록되지 않은 값으로 "더티"합니다.

더러운 데이터
  • 일부 빈 필드가 있습니다
  • 9,000의 평균 펄스는 불가능합니다.
  • 9 000은 공백 구분 기호로 인해 숫자가 아닌 것으로 처리됩니다.
  • 최대 펄스의 한 관찰은 의미가 없는 "AF"로 표시됩니다.

따라서 분석을 수행하려면 데이터를 정리해야 합니다.


빈 행 제거

숫자가 아닌 값(9 000 및 AF)이 누락된 값이 있는 동일한 행에 있음을 알 수 있습니다.

솔루션: 이 문제를 해결하기 위해 누락된 관찰이 있는 행을 제거할 수 있습니다.

Pandas를 사용하여 데이터 세트를 로드하면 모든 빈 셀이 자동으로 "NaN" 값으로 변환됩니다.

따라서 NaN 셀을 제거하면 분석할 수 있는 깨끗한 데이터 세트를 얻을 수 있습니다.

함수를 사용 dropna()하여 NaN을 제거할 수 있습니다. axis=0은 NaN 값이 있는 모든 행을 제거하려는 것을 의미합니다.

예시

health_data.dropna(axis=0,inplace=True)

print(health_data)

결과는 NaN 행이 없는 데이터 세트입니다.

정리된 데이터

데이터 범주

데이터를 분석하려면 우리가 다루고 있는 데이터의 유형도 알아야 합니다.

데이터는 세 가지 주요 범주로 나눌 수 있습니다.

  1. 숫자 - 숫자 값을 포함합니다. 두 가지 범주로 나눌 수 있습니다.
    • 불연속: 숫자가 "전체"로 계산됩니다. 예: 2.5 세션을 훈련할 수 없으며 2 또는 3입니다.
    • 연속: 숫자의 정밀도는 무한할 수 있습니다. 예를 들어 7시간 30분 20초 또는 7.533시간 동안 잘 수 있습니다.
  2. 범주형 - 서로 비교할 수 없는 값을 포함합니다. 예: 색상 또는 훈련 유형
  3. 서수 - 서로 비교하여 측정할 수 있는 범주형 데이터를 포함합니다. 예: A가 B보다 우수한 학교 성적 등

데이터 유형을 알면 데이터를 분석할 때 어떤 기술을 사용해야 하는지 알 수 있습니다.


데이터 유형

함수를 사용하여 info()데이터 세트 내의 데이터 유형을 나열할 수 있습니다. 

예시

print(health_data.info())

결과:

데이터 유형 float 및 객체

이 데이터 세트에는 두 가지 다른 유형의 데이터가 있습니다.

  • 플로트64
  • 물체

여기서는 객체를 사용하여 계산하고 분석을 수행할 수 없습니다. 유형 객체를 float64로 변환해야 합니다(float64는 Python에서 소수가 있는 숫자입니다).

이 함수를 사용 astype()하여 데이터를 float64로 변환할 수 있습니다.

다음 예는 "Average_Pulse" 및 "Max_Pulse"를 데이터 유형 float64로 변환합니다(다른 변수는 이미 데이터 유형 float64임).

예시

health_data["Average_Pulse"] = health_data['Average_Pulse'].astype(float)
health_data["Max_Pulse"] = health_data["Max_Pulse"].astype(float)

print (health_data.info())

결과:

데이터 유형 float

이제 데이터 세트에는 float64 데이터 유형만 있습니다.


데이터 분석

데이터 세트를 정리하면 데이터 분석을 시작할 수 있습니다.

Python에서 함수를 사용하여 describe()데이터를 요약할 수 있습니다.

예시

print(health_data.describe())

결과:

  지속 Average_Pulse Max_Pulse 칼로리_소모 근무시간_근무 시간_수면
세다 10.0 10.0 10.0 10.0 10.0 10.0
평균 51.0 102.5 137.0 285.0 6.6 7.5
표준 10.49 15.4 11.35 30.28 3.63 0.53
30.0 80.0 120.0 240.0 0.0 7.0
25% 45.0 91.25 130.0 262.5 7.0 7.0
50% 52.5 102.5 140.0 285.0 8.0 7.5
75% 60.0 113.75 145.0 307.5 8.0 8.0
최대 60.0 125.0 150.0 330.0 10.0 8.0
  • Count - 관찰 횟수를 계산합니다.
  • 평균 - 평균값
  • Std - 표준 편차(통계 장에서 설명)
  • 최소값 - 가장 낮은 값
  • 25% , 50%75% 는 백분위수입니다(통계 장에서 설명).
  • 최대 - 가장 높은 값