Programming/python

[Python] Pandas 파일 저장 개념정리

그렉그의 2023. 3. 23. 20:30

4. 파일 저장 및 열기

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

In [2]:
 
 
 
 
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
Out[2]:
이름학교키국어영어수학과학사회SW특기지원번호1번2번3번4번5번6번7번8번
채치수 북산고 197 90 85 100 95 85 Python
정대만 북산고 184 40 35 50 55 25 Java
송태섭 북산고 168 80 75 70 80 75 Javascript
서태웅 북산고 187 40 60 70 75 80  
강백호 북산고 188 15 20 10 35 10  
변덕규 능남고 202 80 100 95 85 80 C
황태산 능남고 188 55 65 45 40 35 PYTHON
윤대협 능남고 190 100 85 90 95 95 C#

저장하기

csv 파일로 저장하기

In [5]:
 
 
 
df.to_csv("score.csv", encoding = "utf-8-sig")
 
In [ ]:
 
 
 
#인덱스 없애고 싶을 때 
df.to_csv("score.csv", encoding = "utf-8-sig", index=False)
 

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

In [14]:
 
 
 
df.to_csv("score.txt", sep="\t")
 

엑셀 파일로 저장

In [15]:
 
 
 
df.to_excel("score.xlsx")
 

열기

파일 열기

In [16]:
 
 
 
df = pd.read_csv("score.csv")
df
Out[16]:
지원번호이름학교키국어영어수학과학사회SW특기01234567
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#
In [20]:
 
 
#첫번째 row 는 필요없어! 
df= pd.read_csv("score.csv", skiprows=1)
df
Out[20]:
1번채치수북산고19790851009585.1Python0123456
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#
In [23]:
 
 
 
# rows 1,3,5 는 제외
df= pd.read_csv("score.csv", skiprows = [1,3,5])
df
Out[23]:
지원번호이름학교키국어영어수학과학사회SW특기01234
2번 정대만 북산고 184 40 35 50 55 25 Java
4번 서태웅 북산고 187 40 60 70 75 80 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#
In [24]:
 
 
 
# 지정된 갯수만큼 row 가져옴
df= pd.read_csv("score.csv", nrows=4)
df
Out[24]:
지원번호이름학교키국어영어수학과학사회SW특기0123
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
In [26]:
 
 
 
# 처음 2 row 무시, 이후 4row 가져오기 
df= pd.read_csv("score.csv", skiprows=2, nrows=4)
df
Out[26]:
2번정대만북산고1844035505525Java0123
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

텍스트 파일 열기

In [28]:
 

 

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

엑셀파일 열기

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