티스토리 뷰

728x90
반응형

Pretrained 된 딥러닝 모델을 좀 더 학습시키고 싶을 때,

코드에 손대지 않고 내가 갖고 있는 데이터를 알맞게 수정해야 하기도 한다.

최근에는 tsv 데이터셋으로 학습된 모델을 Finetuning 하게 되어 갖고 있던 데이터셋을 변환해야 했다.

 

1. TSV 파일

tsvTab-Separated-Values 의 약자로 tab을 통해 구분되어 있는 파일이다.

tsv 파일은 결국 콤마(Comma)로 구분되어 있는 csv 파일과 유사하다.

다만 구분자(delimiter)가 tab으로 이루어져 있다는 차이가 있을 뿐이다.

 

2. TSV 파일 읽고 쓰기

구분자의 차이만 있기 때문에 pandas를 통해 csv 파일을 읽고 쓰는 것과 같은 방법으로 tsv를 읽고 쓸 수 있다.

import pandas as pd
# 읽기
df = pd.read_csv("dataset.tsv", sep="\t", encoding = "utf-8")

# 쓰기 / 저장하기
df.to_csv("dataset.tsv", sep="\t", header=False, index=False)

 

3. 옵션

요구되는 데이터셋을 확인하고 같은 모양으로 저장하는 것이 중요하니 잘 살펴보고 원하는 옵션을 추가하자.

- sep

tsv 파일을 읽고 쓰기 위해서는 \t으로 설정해주어야 한다.

default 값은 ","이다.

 

- encoding

특히 한글은 파일을 읽는 과정에서 encoding 방식이 다를 경우 UnicodeDecodeError 같은 에러가 발생할 수 있는데,

이때는 encoding = "utf-8" 과 같이 인코딩 방식을 고정해줄 수 있다.

"utf-8" 이외에도 "cp949", "euc-kr" 등이 쓰인다.

default 값은 " utf-8"이다.

 

- header

데이터를 저장시에는 컬럼 제목인 hearder를 지정할 수 있다.

제목을 함께 저장한다면 True, 저장하지 않는다면 False를 입력한다.

default 값은 True 이다.

 

- index

마찬가지로 인덱스 번호인 index를 함께 저장할지 말지를 선택할 수 있다.

default 값은 True 이다.

 

이외의 옵션들은 pandas documentation에 잘 정리되어 있어서 참고하면 좋을 것 같다.

- 읽기 (read_csv)

 

pandas.read_csv — pandas 2.2.1 documentation

Character or regex pattern to treat as the delimiter. If sep=None, the C engine cannot automatically detect the separator, but the Python parsing engine can, meaning the latter will be used and automatically detect the separator from only the first valid r

pandas.pydata.org

- 쓰기 (to_csv)

 

pandas.DataFrame.to_csv — pandas 2.2.1 documentation

String, path object (implementing os.PathLike[str]), or file-like object implementing a write() function. If None, the result is returned as a string. If a non-binary file object is passed, it should be opened with newline=’’, disabling universal newli

pandas.pydata.org

 

 

728x90
반응형
댓글