728x90
1. 자료형변환
# 데이터 준비
data = {
"메뉴":['아메리카노', '카페라떼', '카페모카', '카푸치노', '에스프레소', '밀크티', '녹차'],
"가격":[4500.0, 5000.0, 5500.0, 5000.0, 4000.0, 5900.0, 5300.0],
"칼로리":['10', '110', '250', '110', '20', '210', '0'],
}
df = pd.DataFrame(data)
df.info()
"메뉴"와 "칼로리"는 object형, "가격"은 float64형 인걸 알 수 있다.
자료형을 변경하기 위해선 df['변경할 컬럼명'] = df['변경할 컬럼명'].astype(변경할 자료형) 을 사용해주면 된다.
# float -> int
df['가격'] = df['가격'].astype(int)
# object -> float
df['칼로리'] = df['칼로리'].astype(float)
2. 새로운 컬럼 추가
# 값이 0으로 채워진 'new'라는 새로운 컬럼을 추가
df['new'] = 0
# 20% 할인가 추가
discount = 0.2
df['할인가'] = df['가격'] * (1-discount)
3. 데이터 삭제(컬럼, 행)
# 데이터프레임 열 제거
df = df.drop('컬럼명', axis=1)
df = df.drop('칼로리', axis=1)
# 데이터프레임 행 제거
df = df.drop(인덱스, axis=0)
df = df.drop(1, axis=0)
4. 인덱싱/슬라이싱(loc/iloc)
데이터프레임.loc[]: 라벨명(문자열) / 인덱스를 사용해서 인덱싱을 진행
데이터프레임.iloc[]: 인덱스를 사용해서 인덱싱 진행
# 0번째 행 인덱싱
df.loc[0]
df.iloc[0]
# 1번째 행 인덱싱
df.loc[0]
df.iloc[0]
- loc[인덱스명/컬럼명]
- iloc[인덱스 번호]
# '가격'열(0번째) 인덱싱
df.loc[:, '가격']
df.iloc[:, 0]
- loc[인덱스명, 컬럼명]
- iloc[인덱스 번호, 컬럼 번호]
# 여러 연속된 행과 연속된 열을 인덱싱하고 싶을 때,
# 1~2행 1~2('가격'~'칼로리')열을 인덱싱
df.loc[1:2, '가격':'칼로리']
df.iloc[1:3, 1:3] # iloc는 1이상 3미만으로 인식한다.
df.iloc[1:3, 1:] # 맨 끝까지 선택할거면 1: 처럼 숫자 넣지 않아도 된다.
- loc[포함할 시작 인덱스: 포함할 끝인덱스, '포함할 시작 컬럼명' : '포함할 끝 컬럼명']
- iloc[포함할 시작 인덱스 번호: 포함할 끝 인덱스 번호+1, 포함할 시작 인덱스 번호: 포함할 끝 인덱스 번호+1]
# 여러 분리된 행과 분리된 열을 인덱싱하고 싶을 때,
# 1행 1,3('메뉴','칼로리')열을 인덱싱
df.loc[1, ['메뉴','칼로리']]
df.loc[1, [1, 3]]
df.iloc[1, [1, 3]]
# 1,3행 1,3('메뉴','칼로리')열을 인덱싱
df.loc[[1,3], ['메뉴','칼로리']]
df.loc[[1,3], [1,3]]
df.iloc[[1,3], [1,3]]
- loc[[찾아야하는 행을 , 구분으로 넣기], [찾아야하는 열을 , 구분으로 넣기]]
- iloc[[찾아야하는 행의 인덱스 번호를 , 구분으로 넣기], [찾아야하는 열의 인덱스 번호를, 구분으로 넣기]]
728x90
'Data > 빅데이터분석기사' 카테고리의 다른 글
| [빅데이터분석기사] 판다스6 - 시계열 데이터1 (0) | 2025.06.11 |
|---|---|
| [빅데이터분석기사] 판다스5 - 그룹핑, 병합, 피벗테이블 (1) | 2025.06.10 |
| [빅데이터분석기사] 판다스4 - 문자열, 내장함수 (1) | 2025.06.10 |
| [빅데이터분석기사] 판다스3 - 추가/변경, 정렬, 필터링, 결측치, 값 변경 (0) | 2025.06.09 |
| [빅데이터분석기사] 판다스1 - 데이터프레임, 시리즈, 저장, EDA (0) | 2025.05.26 |