파이썬(Python)&판다스(Pandas)&Polars

[polars] write_csv로 UTF-8-SIG 처럼 저장하기(include_bom)

송채채 2023. 11. 21. 11:19

pandas와 다르게, index가 포함되지 않고 저장됨

# 기본 코드
df.write_csv("파일명.csv")

 

판다스는 인코딩을 특정해서 저장할 수 있지만, polars는 현재(2023-11-21) 지원하지 않음

대신, 계속 업데이트 중이라서 최근 `include_bom` 변수로 윈도우의 인코딩을 지원할 수 있게 되었음 (polars 0.19.15 버전 기준)

https://github.com/pola-rs/polars/pull/12253  

 

df.write_csv("파일명.csv", include_bom=True)

 

이외의 파라미터는 공식홈페이지를 참고

아래는 단순 번역한 내용임 (최신 라이브러리라서, 계속 변경될 가능성이 높음)

 

parameter:
- file (파일): 결과가 기록될 파일 경로 또는 쓰기 가능한 파일과 유사한 객체. 기본값은 None으로 설정되어 있으면 출력이 문자열로 반환됩니다.
- include_bom (BOM 포함): UTF-8 BOM을 CSV 출력에 포함할지 여부.
- include_header (헤더 포함): CSV 출력에 헤더를 포함할지 여부.
- separator (구분자): CSV 필드를 구분하는 기호.
- line_terminator (행 종료자): 각 행을 끝내는 데 사용되는 문자열.
- quote_char (인용 부호): 인용 부호로 사용될 바이트.
- batch_size (배치 크기): 각 스레드에서 처리될 행의 수.
- datetime_format (날짜 및 시간 형식): chrono Rust 크레이트에서 정의한 지정자를 사용한 형식 문자열. 형식이 지정되지 않으면 기본적으로 Datetime 열의 최대 시간 단위에서 유추된 기본 소수초 정밀도를 사용합니다.
- date_format (날짜 형식): chrono Rust 크레이트에서 정의한 지정자를 사용한 형식 문자열.
- time_format (시간 형식): chrono Rust 크레이트에서 정의한 지정자를 사용한 형식 문자열.
- float_precision (소수 정밀도): 작성할 십진수 자릿수의 수로, Float32 및 Float64 데이터 유형에 적용됩니다.
- null_value (널 값): 널 값을 나타내는 문자열로 기본값은 빈 문자열입니다.
- quote_style (인용 스타일): {'necessary', 'always', 'non_numeric', 'never'} 중 하나로 지정되며 사용되는 인용 전략을 결정합니다.
 - necessary (기본값): 필요할 때만 필드 주위에 인용 부호를 넣습니다. 필드에 인용 부호, 구분 기호 또는 레코드 종료자가 포함된 경우 필요합니다. 레코드에 하나의 빈 필드가 있는 경우 레코드가 빈 경우와 구별할 수 없으므로 인용 부호가 필요합니다. 이것이 기본값입니다.
          - always: 모든 필드 주위에 인용 부호를 넣습니다.
          - never: 필드 주위에 인용 부호를 사용하지 않습니다. 문자열에 구분 기호를 포함하면 잘못된 CSV 데이터가 생성되는 경우도 있습니다.
            - non_numeric: 모든 비숫자 필드 주위에 인용 부호를 넣습니다. 즉, 유효한 부동 소수점이나 정수로 구문 분석되지 않는 필드를 작성할 때 인용 부호가 사용됩니다.

 

 

반응형