4) File
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# |
댓글남기기