[TIL] 내일배움캠프 31일차_[Pandas] 데이터 확인, 필터링, 타입 변환
👀Today I Learn
데이터를 선택하는 방법
1. 인덱스를 사용한 데이터 선택
- 데이터프레임에서 인덱스는 각 행을 고유하게 식별할 수 있는 라벨
- 인덱스를 사용해 특정 행이나 그룹을 쉽게 선택 가능
# 예시 데이터프레임 data = { '이름': ['철수', '영희', '민수'], '나이': [25, 30, 35], '직업': ['학생', '회사원', '프리랜서'] } df = pd.DataFrame(data)
인덱스 설정하기 set_index()
-
특정 열을 인덱스로 설정하면, 데이터 선택이 더 직관적이 됨.
# '이름' 열을 인덱스로 설정 df = df.set_index('이름')
-
결과 :
나이 직업 이름 철수 25 학생 영희 30 회사원 민수 35 프리랜서
인덱스로 데이터 선택 loc()
-
인덱스를 설정한 후,
loc[]
을 사용해 쉽게 데이터에 접근 가능df.loc['영희']
-
결과 :
나이 30 직업 회사원 Name: 영희, dtype: object
2. 열(Column) 지정하여 데이터 선택하기
단일 열 선택
-
열 이름을 사용해 단일 열 선택
df['나이']
-
결과 :
이름 철수 25 영희 30 민수 35 Name: 나이, dtype: int64
여러 열 선택
-
여러 열을 선택하고 싶을 땐, 열 이름의 리스트 사용
# '나이'와 '직업' 열 선택 df[['나이', '직업']]
-
결과 :
나이 직업 이름 철수 25 학생 영희 30 회사원 민수 35 프리랜서
3. 행(Row) 지정하여 데이터 선택
iloc[]을 사용한 행 선택
-
정수 인덱스로 행을 선택 가능
# 첫 번째 행 선택 df.iloc[0]
-
결과 :
나이 25 직업 학생 Name: 철수, dtype: object
loc[]을 사용한 특정 행 선택
-
인덱스 라벨로 특정 행을 선택 가능
# '민수'의 데이터 선택 df.loc['민수']
-
결과 :
나이 35 직업 프리랜서 Name: 민수, dtype: object
여러 행 선택
-
iloc[]
이나loc[]
을 사용해 여러 행을 선택 가능# 첫 번째와 두 번째 행 선택 df.iloc[0:2]
-
결과 :
나이 직업 이름 철수 25 학생 영희 30 회사원
조건부 필터링과 데이터 타입 변환
1. 조건부 필터링
- 데이터프레임에서 특정 조건을 만족하는 데이터만 선택
# 예시 데이터프레임 생성 data = { '이름': ['철수', '영희', '민수', '지수'], '나이': [25, 30, 22, 35], '직업': ['학생', '회사원', '학생', '프리랜서'] } df = pd.DataFrame(data)
기본 조건부 필터링
-
조건을 사용해 필터링된 데이터프레임으로 반환
# 나이가 25 이상인 행만 선택 filtered_df = df[df['나이'] >= 25]
-
결과
이름 나이 직업 0 철수 25 학생 1 영희 30 회사원 3 지수 35 프리랜서
여러 조건을 사용한 필터링
-
여러 조건을 결합하여 필터링 가능( AND (
&
), OR (|
) )# 나이가 25 이상이고, 직업이 '학생'인 행만 선택 filtered_df = df[(df['나이'] >= 25) & (df['직업'] == '학생')]
- 결과
이름 나이 직업 0 철수 25 학생
isin() 을 사용한 필터링
-
특정 값들이 포함된 행을 필터링
# 직업이 '학생' 또는 '프리랜서'인 행 선택 filtered_df = df[df['직업'].isin(['학생', '프리랜서'])]
-
결과 :
이름 나이 직업 0 철수 25 학생 2 민수 22 학생 3 지수 35 프리랜서
~ 연산자를 사용한 반대 조건 필터링
-
특정 조건을 부정하는 데이터를 선택
# 직업이 '학생'이 아닌 행 선택 filtered_df = df[~(df['직업'] == '학생')]
-
결과 :
이름 나이 직업 1 영희 30 회사원 3 지수 35 프리랜서
2. 데이터 타입 변환
- 데이터프레임의 데이터 타입을 확인하고, 필요에 따라 변환하는 방법
dtype 으로 데이터 타입 확인
-
각 열의 데이터 타입 확인
df.dtypes
-
결과 :
이름 object 나이 int64 직업 object dtype: object
astype()을 사용한 데이터 타입 변환
-
특정 열의 데이터 타입 변경
# '나이' 열을 정수형(int)에서 실수형(float)으로 변환 df['나이'] = df['나이'].astype(float) print(df.dtypes)
-
결과 :
이름 object 나이 float64 직업 object dtype: object
날짜 타입으로 변환
-
pd.to_datatime()
함수를 사용하여 날짜 타입으로 변환# 예시 데이터프레임 생성 data = { '이름': ['철수', '영희', '민수'], '가입일': ['2023-01-01', '2022-12-15', '2023-05-22'] } df = pd.DataFrame(data) # '가입일'을 날짜 타입으로 변환 df['가입일'] = pd.to_datetime(df['가입일']) print(df.dtypes)
-
결과 :
이름 object 가입일 datetime64[ns] dtype: object
카테고리 데이터로 변환
-
카테고리는 메모리를 절약하고, 성능을 높이기 위해 사용
# '직업' 열을 카테고리형으로 변환 df['직업'] = df['직업'].astype('category') print(df.dtypes)
-
결과 :
이름 object 나이 float64 직업 category dtype: object
💡Today I Thought
오늘의 체크리스트
- 백준 코딩테스트 1문제
- Pandas 복습
- TIL 작성
회고
오늘은 크리스마스🎅 맛있는 것도 먹고, 하루종일 푹 쉬었다. 사실 공부해야지 해야지 하고 저녁에.. 조금했다…ㅎㅎ 이번주는 휴일이 껴있어서 그런가 시간이 유독 빠르게 지나가는 기분이다.
댓글남기기