본문 바로가기

데이터분석/pandas

pandas dataframe csv file to txt (feat.corpus 만들기)

간단한 팁을 정리해보려고 합니다. 

 

텍스트 데이터를 정제하다 보면 corpus 를 만들어야 하는데요. 이 때, 보통 txt 포맷으로 만드는 걸로 알고 있습니다.

크롤링을 할 때, txt 나 csv 파일 둘 다 해놓아도 어떤 api 에서는 csv 파일을 pandas로 읽어서 작업하는 게 편할 때가 있고,

어떤 api 에서는 txt 파일로 input 해줘야 하는 경우들이 종종 있습니다. 

 

그래서 이번 시간에는 pandas 의 dataframe 중에 특정 Series 컬럼을 txt 로 바꾸는 걸 정리해보려 합니다.

대단한 건 아니지만 이게 간간히 필요할 때가 있습니다. { 저의 경우에는 말이죠 :) } 

 

저의 경우에는 sentencepiece 로 vocab 을 생성하거나 scikit-learn 에 특정 벡터를 만들때 요구하는 파라미터의 타입이 txt 형태인 경우들이 있었습니다. 그 때마다 pandas 에서 작업하고 해당 컬럼을 txt 로 만들고는 했는데 별 거 아니지만 정리하면 좋을 것 같아서 포스팅 해보려 합니다. 

 

 

자, 그러면 이제 간단한 리뷰 데이터를 가져오겠습니다. { 본인이 가진 데이터를 활용하시면 됩니다 :) }

 

예전에 어떤 제품군에 대한 리뷰를 크롤링 했었는데요. 그에 대한 데이터입니다. 

리뷰 갯수는 2만개정도 되네요. 이를 txt 포맷으로 바꿔보겠습니다. 

 

우선 빈 string 을 하나 객체로 인스턴스화 해줍니다. 

그 다음에 개행문자를 넣어서 넣어주는게 1단계입니다. 

 

mystr = ''

for i in tqdm(range(len(df_review))):
    mystr += str(df_review[i]) + '\n'

 

그 후 with open 으로 저장 해주면 됩니다. 

 

with open('corpus_0422.txt', 'w', encoding='utf-8') as f:
    f.write(mystr)

 

저장한 걸 로드 해보겠습니다. 

 

r = open('mycorpus_example_x_train.txt', mode='r', encoding='utf-8')

# 로드한 txt 를 읽기
r.readlines()

 

 

간단한 작업들입니다. 그러면 작업한 것들이 잘 되었는지 확인해보겠습니다. 

 

 

 

정말 사소한 부분이지만 따로 정리해두는 게 좋을 거 같아서 정리해보았습니다. 

이제 dataframe -> txt 는 간단하게 만드시면 될 것 같습니다.  

 

이상 포스팅 마칩니다 :)