2020/09/18 - [Python/Pandas Tutorial] - [Python] Pandas Tutorial :: pandas란? 데이터프레임이란? 시리즈란?
2020/09/19 - [Python/Pandas Tutorial] - [Python] Pandas Tutorial :: read csv, txt file with pandas
판다스 데이터프레임을 csv 파일로 저장하기
0. Import Pandas Library
import pandas as pd
1. Create DataFrame
friend = [{'name':'John', 'age':25, 'job':'student'},
{'name': 'Jenny', 'age': 30, 'job': None},
{'name': 'Nate', 'age': 30, 'job': 'teacher'}]
df = pd.DataFrame(friend)
df = df[['name','age','job']]
> df
name age job
0 John 25 student
1 Jenny 30 None
2 Nate 30 teacher
2. Save File to csv
저장하고 싶은 데이터.to_csv("path")로 저장한다. path에는 저장하고싶은 경로를 저장하고 싶은 파일 이름과 함께 넣으면 된다.
df.to_csv("01. Data/friends.csv")
01. Data 폴더에 friends.csv 라는 이름의 파일이 생성되었다.
to_csv는 default로 index = True, header = True로 설정되어 있다.
따라서 저장된 결과는 다음과 같다.
첫 번째 컬럼에 자동으로 row index가 생성되었고, name, age, job이라는 컬럼명이 함께 저장되었다.
이 index와 header를 빼고 저장하는 방법은 다음과 같다.
df.to_csv("01. Data/friends_noIndex_noHeader.csv", index = False, header=False)
물론 index만 False로, header 만 False로 지정할 수 있다.
본 데이터에는 NA가 존재한다.
두 번째 레코드인 Jenny의 직업이 존재하지 않는다.
아무런 파라미터 없이 저장하면 그냥 빈 칸으로 저장되며, 이를 다시 파이썬에서 불러오면 NaN으로 남아있다.
참고
> df = pd.read_csv("01. Data/friends_noIndex_noHeader.csv", header = None)
> df
0 1 2
0 John 25 student
1 Jenny 30 NaN
2 Nate 30 teacher
이를 NaN이 아닌 다른 것으로 저장하고 싶다면 na_rep = "" 으로 지정해주면 된다.
df.to_csv("01. Data/friends_naRep.csv", index = False, na_rep="-")
Jenny의 job이 "-"로 저장되었다.
전체 코드
###################################################
# 제목 : Pandas Tutorial
# 작성자 : SK C&C 이다경 선임
# 작성일 : 20200921
#
# Description
#
# [SK C&C] Pandas Tutorial
# Chapter4 : 데이터프레임 파일로 저장하기 (to_csv)
###################################################
# 0. import library
import pandas as pd
# 1. Create DataFrame
friend = [{'name':'John', 'age':25, 'job':'student'},
{'name': 'Jenny', 'age': 30, 'job': None},
{'name': 'Nate', 'age': 30, 'job': 'teacher'}]
df = pd.DataFrame(friend)
df = df[['name','age','job']]
df
# name age job
# 0 John 25 student
# 1 Jenny 30 None
# 2 Nate 30 teacher
# 2. Save File to csv
df.to_csv("01. Data/friends.csv")
## 2-2. no rownames, no header
df.to_csv("01. Data/friends_noIndex_noHeader.csv", index = False, header=False)
## 2-3. replace NA
df.to_csv("01. Data/friends_naRep.csv", index = False, na_rep="-")
출처
www.youtube.com/watch?v=hmYdzvmcTD8&list=PLVNY1HnUlO25etNe08s1H1nIIbbZdJwxA&index=4