데이터 확인
- .head() : 데이터를 N개 행까지 보여줌
data.head() # head()은 기본 5개 행에 대한 데이터를 보여줌
data.head(3) # ()안에 숫자만큼 데이터를 보여줌
- Info() : 데이터의 정보를 파악 (인덱스, 컬럼명, 컬럼의 데이터 개수, 데이터 타입) `강사님이 자주 쓰는거`
data.info()
# null 값을 확인할때도 활용
- .describe() : 데이터의 기초통계량 확인 (개수, 평균, 표준편차, 사분위, 중앙값)
data.describe()
# 숫자값에 대해서만 기초통계량 확인이 가능합니다.
데이터 불러온 후 반드시 확인 할 것
- 결측치(null) 없는지
- 결측치 제거하는 방법
# 결측치 확인 : isna()
df.isna()
# 결측치 확인 : isnull()
df.isnull().sum() # 이렇게하면 결측치가 몇개있는지도 알 수 있어요 !
# 결측치 제거 : dropna()
df.dropna()
- 중복 데이터 없는지
- 중복 데이터 제거하는 방법
# 중복 데이터 확인
df.duplicated(subset=['컬럼1', '컬럼2', '컬럼3'])
# 중복 데이터 제거
df.drop_duplicates(subset=['컬럼1', '컬럼2', '컬럼3'])
- 데이터 이상치 없는지
- 이상치 처리하는 방법
# IQR (Interquartile Range) 방법 찾아보기
# 참고 : https://www.scribbr.com/statistics/interquartile-range/
# IQR 계산
Q1 = df['컬럼1'].quantile(0.25)
Q3 = df['컬럼1'].quantile(0.75)
IQR = Q3 - Q1
# 이상치 기준 설정
lower_bound = Q1 - 1.5 * IQR
upper_bound = Q3 + 1.5 * IQR
# 이상치 제거
df[(df['컬럼1'] >= lower_bound) & (df['컬럼1'] <= upper_bound)]
- 데이터 타입이 알맞게 들어가있는지
# 데이터 타입 변경을 원한다면 !
df['column_name'].astype(int)
df['column_name'].astype(float)
df['column_name'].astype(str)
df['column_name'].astype(bool)
df['column_name'].astype('category')
df['column_name'].astype('datetime64[ns]')
df['column_name'].astype(complex)
df['column_name'].astype(object)
데이터 타입 변경
데이터 타입(Data Type) | 설명(Description) | 예시(Example) |
int64, int32 | 정수형 데이터 (64비트 또는 32비트) | 1, 42, -10, 1000 |
float64, float32 | 부동 소수점 수 (64비트 또는 32비트) | 3.14, -0.001, 2.718 |
object | 문자열 데이터 (일반적으로 문자열) | 'Hello', 'Data Science' |
bool | 불리언(참/거짓) 데이터 | True, False |
datetime64 | 날짜와 시간 데이터 | '2023-12-31 08:00:00' |
timedelta64 | 시간 간격(두 날짜 또는 시간 사이의 차이) 데이터 | '3 days', '2 hours' |
category | 카테고리형 데이터 (제한된 고유 값으로 구성) | 'Red', 'Blue', 'Green' |
- 데이터 타입 확인
- .dtype()
# 데이터 타입 확인
df['size'].dtype
- 데이터 타입 변경 기본 구조
- .astype()
DataFrame['column_name'] = DataFrame['column_name'].astype(new_dtype)
# 예시
# 데이터타입 변경
df['total_bill'].astype(str)
참고로 그냥 astype으로 바꾸기만 하면 위와 같이 .dtype했을 때 똑같이 나오니까 다시 꼭 담아줘야 함.
`df[칼럼명] = df[칼럼명].astype(바꿀 데이터 타입)` 하고나면,
아래와 같이 dtype('0') (= 데이터 타입 object) 라고 나오고 info에도 object로 변경되어 나옴.
그리고 여기서 다시 int로 바꿀 때 값에 소수점이 있으면 안 바뀌고 오류가 나기 때문에 float으로 바꾸고 다시 int로 바꿈
df['B'] = df['B'].astype(float).astype(int) # 이렇게!
df['B'].dtype