데이터 불러오기, 저장하기
2022. 3. 17. 16:27ㆍPython
경로 확인하기 및 설정하기
- 파이썬에서 데이터를 불려오려면 반드시 경로와 확장자까지 포함해서 불러와야함
- os.getcwd() : 현재 경로를 반환
- os.chdir(path) : 현재 경로를 path로 설정
> 역슬래시(\)는 특별한 표현이 아님을 나타내야 함
- 역슬래시 두 번 사용 : "path\\path"
- 역슬래시를 슬래시로 변경 : "path/path"
- r을 사용하여 raw string임을 밝힘 : r"path\path"
open 함수를 이용한 파일 불러오기
- 파일객체 = open(파일 경로 및 이름 , 모드)
- 정제되지 않은 형태의 데이터를 불러오는 경우에 주로 사용
- 모드에는 r(read), w(write), a(add)가 있음
- 파일 객체 사용후 close 함수를 사용하여 닫아줘야 함 (cf. with 구문)
import os
os.getcwd() # 현재 경로 확인
os.chdir(r"C:\Users\user\Downloads\1.-데이터-핸들링\1. 데이터 핸들링\데이터") #데이터가 들어있는 파일 경로 지정
os.getcwd()
open("sample folder/sample data.txt")
read 이용한 데이터 불러오기
f = open("data_reading.csv", "r")
data = f.read()
f.close()
data[:1000]
readline 이용한 데이터 불러오기
f = open("data_reading.csv", "r")
header = f.readline() # 첫 번째 row를 읽어옴
data = []
line = f.readline() # 두 번째 row를 읽음
while line: # line이 빈 문자열이 될 때까지
data.append(list(map(float, line.split(','))))
line = f.readline()
f.close()
- f.read() : 파일f에 있는 모든 내용을 불러옴
- f.readline() : 파일f에 있는 한 줄(\n 기준 및 포함)을 불러옴
> read 및 readline의 결과물은 문자열이므로 문자열 관련 함수 숙지 필요
- str.split(sep) : str을 sep 기준으로 분할하여 리스트로 변환
- map(함수,L) : iterable한 객체L에 함수를 일괄 적용
write 이용한 데이터 쓰기
- f.write(string) : string을 파일f에 씀
- > 리스트등을 string을 변환하는 join 함수 활용 필요
- sep.join(list) : list의 문자열 요소들을 sep으로 연결
with open("written_data.csv", "w") as f:
f.write(header)
for line in data:
f.write(','.join(list(map(str, line))))
f.write('\n')
read_csv 함수를 이용한 데이터 불러오기
pd.read_csv(filepath, sep, header, index_col, usecols, parse_dates, nrows )
# filepath : 파일 경로 및 이름
# sep : 구분자 (default : ',')
# header : 헤더의 위치로 None을 입력하면 컬럼명이 자동으로 0,1,2,..로 자동 부여 (default : 'infer')
# index_col : 인덱스의 위치
# usecols : 사용할 컬럼 목록 및 위치 목록 (데이터가 큰 경우)
# nrows : 불러올 행의 개수 (데이터가 큰 경우)
- 헤더가 없는 데이터 불러오기
df = pd.read_csv("data_reading_without_header.csv", header = None)
df.columns = ['X1', 'X2', 'X3', 'X4', 'X5'] # 컬럼명 바꾸기
df.head()
to_csv 함수를 이용한 데이터 저장하기
df.to_csv(filepath, sep, index)
# filepath : 파일 경로 및 이름
# sep : 구분자 (default : ',')
# index : 인덱스를 저장할지 여부
read_excel 함수를 이용한 데이터 불러오기
pd.read_excel(filepath, sheet_name, header, index_col, usecols, parse_dates, nrows)
# filepath : 파일 경로 및 이름
# sheet_name : 불러오고자 하는 시트 이름 및 위치
# header : 헤더의 위치로 None을 입력하면 컬럼명이 0,1,2,..로 자동 부여됨 (default:'infer')
# index_col : 인덱스의 위치
# usecols : 사용할 컬럼 목록 및 위치 목록 (데이터가 큰 경우)
# nrows : 불러올 행의 개수 (데이터가 큰 경우)
# skiprows : 불러오지 않을 행의 위치 (리스트)
to_excel 함수를 이용한 데이터 저장하기
- 테이블 형태의 데이터를 저장하는데 효과적
df.to_excel(filepath, index, sheet_name, mode)
# filepath : 파일 경로 및 이름
# index_col : 인덱스를 저장할지 여부
# sheet_name : 시트 명
- 여러 시트를 생성해야 하는 경우
writer = pd.ExcelWriter(xlsx file)
df1.to_excel(writer, sheet_name="sheet1")
df2.to_excel(writer, sheet_name="sheet2")
'Python' 카테고리의 다른 글
데이터 정렬 (0) | 2022.03.18 |
---|---|
pivot_table, groupby (0) | 2022.03.18 |
기초 통계 함수 (0) | 2022.03.18 |
데이터 결합 - merge, concat (0) | 2022.03.17 |
Input / Output (0) | 2022.03.17 |