Python/Pandas Tutorial

[Python] Pandas Tutorial :: Save Pandas Data Frame to CSV file

슈퍼짱짱 2020. 9. 21. 14:24
반응형

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

2020/09/21 - [Python/Pandas Tutorial] - [Python] Pandas Tutorial :: Create Data Frame with Dictionary, List

 

판다스 데이터프레임을 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

 

반응형