👩‍💻 Develope/Python

[Python] CSV 파일 변환할 때 쌍 따옴표(double quotation) 추가하기

heywantodo 2024. 1. 9. 16:37
728x90
반응형

[Python] CSV 파일 변환할 때 쌍 따옴표(double quotation) 추가하기

데이터 프레임의 전체 컬럼에 쌍 따옴표를 추가하고 싶을 땐, quoting=csv.QUOTE_ALL 옵션을 사용하면 된다.

import csv
df.to_csv(df, quoting=csv.QUOTE_ALL)

 

하지만 나는 특정 컬럼에 쌍 따옴표를 추가 후 csv 파일로 변환을 하고 싶었는데, 추가 후 변환을 하면

자꾸 쌍따옴표가 3쌍이 되서 나왔다 😭😭

 

이렇게 apply를 통해서 컬럼 데이터에 쌍따옴표를 추가 후 df를 출력하면 쌍따옴표가 잘 붙어있지만

import pandas as pd

df = pd.DataFrame({'학번':[1, 2, 3, 4],
                   '키':[163, 153, 175, 180],
                   '몸무게':[50, 46, 70, 68]})

df['학번'] = df['학번'].apply(lambda x: f'"{x}"')

 

csv로 변환을 하면 다음과 같이 3쌍이 됐다.

 

이유를 찾아보니 문자열에 쌍따옴표가 포함되면 csv는 단순한 문자열인지 아니면 (") 이 포함된 값인지를 혼동한다고 판단하여, 특별 구문으로 세 개의 따옴표를 사용한다고 한다.

 

이를 해결하기 위해선 쌍따옴표가 인용 문자로 해석이 되지 않도록 quotechar를 변경해준다.

인용 문자는 (') 로 지정을 했기 때문에 (")는 의도한대로 출력이 된다.

df.to_csv(quotechar="'")

 

참고

https://stackoverflow.com/questions/73688496/using-double-quotes-within-str-python-pandas

728x90
반응형