H-Log
[python] pandas 파일 저장 및 열기 본문
반응형
출처 : 나도코딩 https://www.youtube.com/watch?v=PjhlUzp_cU0&t=10533
Data Frame 객체를 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#']
}
# dictionary를 data frame으로 변환
# df의 index를 1번~8번으로 변환
df = pd.DataFrame(data, index=['1번', '2번', '3번', '4번', '5번', '6번', '7번', '8번'])
# df의 index column에 이름 할당
df.index.name = '지원번호'
이름 학교 키 국어 영어 수학 과학 사회 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 파일로 저장
- 저장할객체**.to_csv**(’파일명.csv’, encoding='utf-8-sig')
df.to_csv('score.csv', encoding='utf-8-sig')
# index 없이 저장하기
df.to_csv('score.csv', encoding='utf-8-sig', index=False)
txt 파일로 저장
- 저장할객체**.to_csv**(’파일명.txt’, sep=’\t’)
# txt 파일로 저장
# sep = 구분자
# \\t = tab으로 구분된 덱스트 파일
df.to_cvs('score.txt', sep='\\t')
Excel 파일로 저장
- pip install openpyxl
- 저장할객체**.to_excel**(’파일명.xlsx’)
df.to_excel('score.xlsx')
파일 열기
csv 파일 열기
df = pd.read_csv('score.csv')
print(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#
txt 파일 열기
df = pd.read_csv('score.txt', sep='\\t')
print(df).
excel 파일 열기
df = pd.read_excel('score.xlsx')
print(df)
인덱스 번호 지정
df = pd.read_csv('score.txt', sep='\\t', index_col='지원번호')
print(df)
df = pd.read_excel('score.xlsx', index_col='지원번호')
print(df)
파일을 불러오면 index가 0,1,2,3 … 으로 재생성되어있다
index를 다시 ‘지원번호’로 지정해주자
row 무시하기
- skiprows = n : 지정된 갯수만큼의 row를 건너뜀여기에서는 이름, 학교, 키 등 제목열부터 1번 줄러 인식되기 때문에 아래처럼 출력된다.
- 위에서 한줄이 없어지고, 그 아랫줄부터 출력된다.
df = pd.read_csv('score.csv', skiprows=1)
print(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#
- skiprow=[] : 리스트 형태로 주면 해당하는 줄을 모두 무시
df = pd.read_csv('score.csv', skiprows=[1, 3, 5])
print(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#
원하는 row만 출력
- nrows : 입력한 줄 만큼만 출력
df = pd.read_csv('score.csv', nrows=4)
print(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
skiprows와 nrows 같이 사용하기
df = pd.read_csv('score.csv', skiprows=2, nrows=4)
print(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
반응형
'dev-log > python' 카테고리의 다른 글
[python] pandas 데이터 선택 (0) | 2023.01.17 |
---|---|
[python] pandas 데이터 확인 (0) | 2023.01.17 |
[python] pandas 시작하기 (0) | 2023.01.17 |
[python] 모듈 연습 - glob, os, datetime (0) | 2023.01.12 |
내장함수와 외장함수 (0) | 2023.01.12 |
Comments