5 분 소요

4. 파일 저장 및 열기

DataFrame 객체를 excel, csv, txt 등 형태의 파일로 저장 및 열기

import pandas as pd

data = {
    '이름' : ['채치수', '정대만', '송태섭', '서태웅', '강백호', '변덕규', '황태산', '윤대협'],
    '학교' : ['북산고', '북산고', '북산고', '북산고', '북산고', '능남고', '능남고', '능남고'],
    '키' : [197, 184, 168, 187, 188, 202, 188, 190],
    '국어' : [90, 40, 80, 40, 15, 80, 55, 100],
    '영어' : [85, 35, 75, 60, 20, 100, 65, 85],
    '수학' : [100, 50, 70, 70, 10, 95, 45, 90],
    '과학' : [95, 55, 80, 75, 35, 85, 40, 95],
    '사회' : [85, 25, 75, 80, 10, 80, 35, 95],
    'SW특기' : ['Python', 'Java', 'Javascript', '', '', 'C', 'PYTHON', 'C#']
}

df = pd.DataFrame(data, index=['1번','2번','3번','4번','5번','6번','7번','8번'])
df.index.name = '지원번호'
df
이름 학교 국어 영어 수학 과학 사회 SW특기
지원번호
1번 채치수 북산고 197 90 85 100 95 85 Python
2번 정대만 북산고 184 40 35 50 55 25 Java
3번 송태섭 북산고 168 80 75 70 80 75 Javascript
4번 서태웅 북산고 187 40 60 70 75 80
5번 강백호 북산고 188 15 20 10 35 10
6번 변덕규 능남고 202 80 100 95 85 80 C
7번 황태산 능남고 188 55 65 45 40 35 PYTHON
8번 윤대협 능남고 190 100 85 90 95 95 C#

저장하기

csv 파일로 저장

df.to_csv('score.csv', encoding='utf-8-sig') # utf 해줘야 파일에서 글자 안깨짐
df.to_csv('score.csv', encoding='utf-8-sig',index=False) # index 값 안뜬다.

텍스트(.txt) 파일로 저장

df.to_csv('score.txt', sep='\t') # tab으로 구분된 텍스트 파일

엑셀 파일로 저장

df.to_excel('score.xlsx')

열기

csv 파일 열기

df = pd.read_csv('score.csv')
df
이름 학교 국어 영어 수학 과학 사회 SW특기
0 채치수 북산고 197 90 85 100 95 85 Python
1 정대만 북산고 184 40 35 50 55 25 Java
2 송태섭 북산고 168 80 75 70 80 75 Javascript
3 서태웅 북산고 187 40 60 70 75 80 NaN
4 강백호 북산고 188 15 20 10 35 10 NaN
5 변덕규 능남고 202 80 100 95 85 80 C
6 황태산 능남고 188 55 65 45 40 35 PYTHON
7 윤대협 능남고 190 100 85 90 95 95 C#
df = pd.read_csv('score.csv', skiprows=1) # 지정된 갯수 만큼의 row를 건너띔
df
채치수 북산고 197 90 85 100 95 85.1 Python
0 정대만 북산고 184 40 35 50 55 25 Java
1 송태섭 북산고 168 80 75 70 80 75 Javascript
2 서태웅 북산고 187 40 60 70 75 80 NaN
3 강백호 북산고 188 15 20 10 35 10 NaN
4 변덕규 능남고 202 80 100 95 85 80 C
5 황태산 능남고 188 55 65 45 40 35 PYTHON
6 윤대협 능남고 190 100 85 90 95 95 C#
df = pd.read_csv('score.csv', skiprows=[1, 3, 5]) # 1,3,5 row는 제외 (0부터 시작)
df
이름 학교 국어 영어 수학 과학 사회 SW특기
0 정대만 북산고 184 40 35 50 55 25 Java
1 서태웅 북산고 187 40 60 70 75 80 NaN
2 변덕규 능남고 202 80 100 95 85 80 C
3 황태산 능남고 188 55 65 45 40 35 PYTHON
4 윤대협 능남고 190 100 85 90 95 95 C#
df = pd.read_csv('score.csv', nrows=4) # 지정된 갯수 만큼의 row만 가져옴
df
이름 학교 국어 영어 수학 과학 사회 SW특기
0 채치수 북산고 197 90 85 100 95 85 Python
1 정대만 북산고 184 40 35 50 55 25 Java
2 송태섭 북산고 168 80 75 70 80 75 Javascript
3 서태웅 북산고 187 40 60 70 75 80 NaN
df = pd.read_csv('score.csv', skiprows=2, nrows=4) # 처음 2개 row 무시, 이후에 4 row 가져옴
df
정대만 북산고 184 40 35 50 55 25 Java
0 송태섭 북산고 168 80 75 70 80 75 Javascript
1 서태웅 북산고 187 40 60 70 75 80 NaN
2 강백호 북산고 188 15 20 10 35 10 NaN
3 변덕규 능남고 202 80 100 95 85 80 C

텍스트(.txt) 파일 열기

df = pd.read_csv('score.txt', sep='\t')
df
지원번호 이름 학교 국어 영어 수학 과학 사회 SW특기
0 1번 채치수 북산고 197 90 85 100 95 85 Python
1 2번 정대만 북산고 184 40 35 50 55 25 Java
2 3번 송태섭 북산고 168 80 75 70 80 75 Javascript
3 4번 서태웅 북산고 187 40 60 70 75 80 NaN
4 5번 강백호 북산고 188 15 20 10 35 10 NaN
5 6번 변덕규 능남고 202 80 100 95 85 80 C
6 7번 황태산 능남고 188 55 65 45 40 35 PYTHON
7 8번 윤대협 능남고 190 100 85 90 95 95 C#
df = pd.read_csv('score.txt', sep='\t', index_col='지원번호') # 인덱스 지정 방법 1
df
이름 학교 국어 영어 수학 과학 사회 SW특기
지원번호
1번 채치수 북산고 197 90 85 100 95 85 Python
2번 정대만 북산고 184 40 35 50 55 25 Java
3번 송태섭 북산고 168 80 75 70 80 75 Javascript
4번 서태웅 북산고 187 40 60 70 75 80 NaN
5번 강백호 북산고 188 15 20 10 35 10 NaN
6번 변덕규 능남고 202 80 100 95 85 80 C
7번 황태산 능남고 188 55 65 45 40 35 PYTHON
8번 윤대협 능남고 190 100 85 90 95 95 C#
df = pd.read_csv('score.txt', sep='\t') # 인덱스 지정 방법 2
df.set_index('지원번호', inplace=True)
df
이름 학교 국어 영어 수학 과학 사회 SW특기
지원번호
1번 채치수 북산고 197 90 85 100 95 85 Python
2번 정대만 북산고 184 40 35 50 55 25 Java
3번 송태섭 북산고 168 80 75 70 80 75 Javascript
4번 서태웅 북산고 187 40 60 70 75 80 NaN
5번 강백호 북산고 188 15 20 10 35 10 NaN
6번 변덕규 능남고 202 80 100 95 85 80 C
7번 황태산 능남고 188 55 65 45 40 35 PYTHON
8번 윤대협 능남고 190 100 85 90 95 95 C#

엑셀 파일 열기

df = pd.read_excel('score.xlsx')
df
지원번호 이름 학교 국어 영어 수학 과학 사회 SW특기
0 1번 채치수 북산고 197 90 85 100 95 85 Python
1 2번 정대만 북산고 184 40 35 50 55 25 Java
2 3번 송태섭 북산고 168 80 75 70 80 75 Javascript
3 4번 서태웅 북산고 187 40 60 70 75 80 NaN
4 5번 강백호 북산고 188 15 20 10 35 10 NaN
5 6번 변덕규 능남고 202 80 100 95 85 80 C
6 7번 황태산 능남고 188 55 65 45 40 35 PYTHON
7 8번 윤대협 능남고 190 100 85 90 95 95 C#
df = pd.read_excel('score.xlsx', index_col='지원번호')
df
이름 학교 국어 영어 수학 과학 사회 SW특기
지원번호
1번 채치수 북산고 197 90 85 100 95 85 Python
2번 정대만 북산고 184 40 35 50 55 25 Java
3번 송태섭 북산고 168 80 75 70 80 75 Javascript
4번 서태웅 북산고 187 40 60 70 75 80 NaN
5번 강백호 북산고 188 15 20 10 35 10 NaN
6번 변덕규 능남고 202 80 100 95 85 80 C
7번 황태산 능남고 188 55 65 45 40 35 PYTHON
8번 윤대협 능남고 190 100 85 90 95 95 C#

댓글남기기