본문 바로가기

데이터 분석/Pandas

[Pandas 핵심] 3. 데이터프레임 변경/삭제, csv로 저장하기/불러오기

- 데이터 핸들링을 할 때 가장 기본적으로 사용해야 하는 자료형 변환, 새로운 컬럼 추가, 데이터 삭제와 같은 데이터프레임 변경/삭제 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 새로운 컬럼 추가

 

데이터프레임 df

 

#1에서 만들었던 데이터프레임인 df에 새로운 컬럼을 추가해본다.

 

일괄적으로 특정한 값을 새로운 컬럼에 추가  

 

# 새로운 컬럼 추가 (값은 0)
df['new'] = 0
df

 

 

각 컬럼끼리의 연산으로 이뤄져있는 컬럼 추가

 

# 할인가 컬럼 추가
df['할인가'] = df['가격'] * (1-df['할인율'])
df

 

 

새로운 컬럼을 만들고, 거기에 결측값 (NaN)을 대입

 

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

 

 

- 결측값에 대한 상세한 내용은 추후 상술

 

 

#3 데이터 삭제

 

데이터프레임 df

 

#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

https://pandas.pydata.org/docs/user_guide/