티스토리 뷰
Pretrained 된 딥러닝 모델을 좀 더 학습시키고 싶을 때,
코드에 손대지 않고 내가 갖고 있는 데이터를 알맞게 수정해야 하기도 한다.
최근에는 tsv 데이터셋으로 학습된 모델을 Finetuning 하게 되어 갖고 있던 데이터셋을 변환해야 했다.
1. TSV 파일
tsv 는 Tab-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
'ML > Ect' 카테고리의 다른 글
[ML / Python] Progress bar를 표시하는 tqdm 활용하기 (0) | 2023.02.02 |
---|---|
[Python] pip 패키지 목록 requirements.txt 생성 및 설치 방법 (1) | 2023.01.31 |
[HTML / 티스토리 스킨] HTML 문서에서 LaTeX 로 수식 작성하기 (0) | 2023.01.21 |