Django | 2022. 3. 11. 15:56

Pandas - 판다스 사용할 때 csv 내보내기 index 제거하기

장고의 데이터 처리를 위해서 csv 내보내기를 기본 csv 라이브러리를 쓰니깐 속도가 너~~~~~~~~~~무 느려

 

어쩔수 없이 Pandas를 사용할 수 밖에 없네

 

to_csv 를 사용해서 내보내는데, 몇 초 만에 되네 ㅋㅋㅋ 한줄씩 내보내기 하니깐 몇 분 기다려도 안되던데...

 

암튼 내보내기 하니깐 앞에 원하지 않는 인덱스 값이 컬럼으로 들어와서 불편해서 제거하는 것을 찾아보니 떡 있네.

 

8-파이썬-데이터프레임의-인덱스-제거하기

 

정말 간단한데 to_csv 혹은 to_excel 함수를 사용하실 때 아래 코드처럼 'index=False' 만 추가하면 되거든요 👍
# file1을 인덱스 없이 '실습1_수정.xlsx'파일로 내보내기
file1.to_excel('실습1_수정.xlsx',index=False)

 

실제 내 코드에는 response 에 데이터를 실어줘서 브라우저에서 다운로드 하도록 되어 있으니 아래 코드와 같다.

    # Create the HttpResponse object with the appropriate CSV header.
    response = HttpResponse(content_type="text/csv", charset='euc-kr')
    response['Content-Disposition'] = 'attachment; filename="csv_result.csv"'
    queryset = Object.filter(...).values_list("name", ... , "endtime")
    resultDf = pd.DataFrame(list(queryset), columns=['이름', ... , '완료시간'])
    response = HttpResponse(content_type="text/csv", charset='euc-kr')
    response['Content-Disposition'] = 'attachment; filename="csv_result.csv"'
    resultDf.to_csv(path_or_buf=response, index=False)

이 코드도 여기 글을 참고함

 

https://stackoverflow.com/questions/11697887/converting-django-queryset-to-pandas-dataframe

 

Converting Django QuerySet to pandas DataFrame

I am going to convert a Django QuerySet to a pandas DataFrame as follows: qs = SomeModel.objects.select_related().filter(date__year=2012) q = qs.values('date', 'OtherField') df = pd.DataFrame.

stackoverflow.com

 판다곰처럼 미련하게 쭉쭉 가쟝

Diana Silaraja 님의 사진, 출처: Pexels

댓글을 달아 주세요

">