- 데이터 핸들링을 할 때 가장 기본적으로 사용해야 하는 자료형 변환, 새로운 컬럼 추가, 데이터 삭제와 같은 데이터프레임 변경/삭제 API들에 대해 알아본다.
- 실습환경 : colab
#1 자료형 변환
데이터프레임 만들기
# 데이터 프레임 만들기 (할인율과 칼로리 : 문자열)
data = {
"메뉴":['아메리카노', '카페라떼', '카페모카', '바닐라콜드브루'],
"가격":[4100, 4600, 4600, 5100],
"할인율":['0.5', '0.1', '0.2', '0.3'],
"칼로리":[10,180,420,320],
}
df = pd.DataFrame(data)
df.info()

자료형 변환
# 자료형 변환 / astype / object -> float
df['할인율'] = df['할인율'].astype('float')
# 자료형 확인
df.info()

- object였던 자료형을 float으로 변환하기
#2 새로운 컬럼 추가

#1에서 만들었던 데이터프레임인 df에 새로운 컬럼을 추가해본다.
일괄적으로 특정한 값을 새로운 컬럼에 추가
# 새로운 컬럼 추가 (값은 0)
df['new'] = 0
df

각 컬럼끼리의 연산으로 이뤄져있는 컬럼 추가
# 할인가 컬럼 추가
df['할인가'] = df['가격'] * (1-df['할인율'])
df

새로운 컬럼을 만들고, 거기에 결측값 (NaN)을 대입
# 결측값으로 추가, 원두 컬럼을 만들고 결측값(NaN)으로 대입
import numpy as np
df['원두'] = np.nan
df

- 결측값에 대한 상세한 내용은 추후 상술
#3 데이터 삭제

#2 에서 만들었던 데이터프레임인 df에서 컬럼과 행을 삭제해본다.
컬럼 삭제
- 데이터프레임명.drop(컬럼명, axis = 1) : 열방향
- 'axis =' 은 생략가능
# 데이터 삭제
# axis=1:열방향(컬럼) / axis=0:행방향
df = df.drop('new', 1) # 우측 코드를 실행한다고 해서 df가 바뀌진 않으므로 이렇게 새롭게 대입해줘야 한다.

행 삭제 : .drop(컬럼명/행 index) api의 디폴트
- 데이터프레임명.drop(행 index, axis = 0) : 행방향 → 디폴트
- 'axis =' 은 생략가능
# 행 삭제
df = df.drop(1, axis=0) # 인덱스 1인 카페라떼 삭제

# 번외. CSV로 저장하기/불러오기
앞에서도 다룬적들이 있었던 데이터프레임 <-> csv파일 방식을 다시 한 번 정리한다.
CSV로 저장하기
- 데이터프레임명.to_csv('file명.csv', index = False)
- pd.to_csv('~~')가 아니므로 유의
- index=False : 없이 저장 시 앞에 있는 인덱스 값도 일종의 컬럼으로 저장이된다.
- index=False를 붙이게 되면 인덱스 컬럼은 제외하고 저장이 되고, 이를 불러올 때 다시 자동으로 인덱싱이 된다.
# csv로 저장하기
df.to_csv('data2.csv', index=False)
CSV 불러오기
- 데이터프레임명.read_csv('file명.csv')
# csv 불러오기
new_df = pd.read_csv('data2.csv')
new_df.head()

# Reference
'데이터 분석 > Pandas' 카테고리의 다른 글
| [Pandas 핵심] 6. 시계열데이터 다루기 (Datetime, Timedelta) (0) | 2023.11.08 |
|---|---|
| [Pandas 핵심] 5. 조건필터, 결측치 확인, 값 변경, 내장함수, 그룹핑, apply함수(w. lambda) (0) | 2023.10.25 |
| [Pandas 핵심] 4. 인덱싱/슬라이싱, 정렬 (2) | 2023.10.22 |
| [Pandas 핵심] 2. 탐색적 데이터 분석 (EDA) 시 활용 함수들 (1) | 2023.10.17 |
| [Pandas 핵심] 1. DataFrame과 Series (2) | 2023.10.17 |