데이터 과학 - 데이터 준비
데이터를 분석하기 전에 데이터 과학자는 데이터를 추출하여 깨끗하고 가치 있게 만들어야 합니다.
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 행이 없는 데이터 세트입니다.
데이터 범주
데이터를 분석하려면 우리가 다루고 있는 데이터의 유형도 알아야 합니다.
데이터는 세 가지 주요 범주로 나눌 수 있습니다.
- 숫자 - 숫자 값을 포함합니다. 두 가지 범주로 나눌 수 있습니다.
- 불연속: 숫자가 "전체"로 계산됩니다. 예: 2.5 세션을 훈련할 수 없으며 2 또는 3입니다.
- 연속: 숫자의 정밀도는 무한할 수 있습니다. 예를 들어 7시간 30분 20초 또는 7.533시간 동안 잘 수 있습니다.
- 범주형 - 서로 비교할 수 없는 값을 포함합니다. 예: 색상 또는 훈련 유형
- 서수 - 서로 비교하여 측정할 수 있는 범주형 데이터를 포함합니다. 예: A가 B보다 우수한 학교 성적 등
데이터 유형을 알면 데이터를 분석할 때 어떤 기술을 사용해야 하는지 알 수 있습니다.
데이터 유형
함수를 사용하여 info()
데이터 세트 내의 데이터 유형을 나열할 수 있습니다.
예시
print(health_data.info())
결과:
이 데이터 세트에는 두 가지 다른 유형의 데이터가 있습니다.
- 플로트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())
결과:
이제 데이터 세트에는 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% 는 백분위수입니다(통계 장에서 설명).
- 최대 - 가장 높은 값