문자열 값의 데이터 프레임을 형식이 지정된 숫자 값으로 Excel 파일에 쓰는 방법은 무엇입니까?

Jan 05 2021

기본적으로 숫자로 변환되고 엑셀 시트로 인쇄되는 문자열 값 목록이 있습니다. 나는 이미 그것을 할 수 있지만 그 값이 "엑셀 숫자 값"으로 인쇄되기를 원합니다 . 내가 얻은 것은 다음과 같습니다.

writer = pd.ExcelWriter('test.xlsx', engine='openpyxl')

listOfValues = ['3913375,45','126179,15','22324,72','26335,28','3699901,34']

df_values = pd.DataFrame({'TOTAL': listOfValues}).apply(pd.to_numeric)

df_values.to_excel(writer, sheet_name='test')

writer.save()

내 결과는 다음과 같습니다.

결과 Excel

그러나 다음과 같이 쉽게 준비 할 수 있도록 점으로 구분 된 숫자 값으로 인쇄하고 싶습니다.

결과적으로 갖고 싶은 것

(제가 원하는 솔루션은 결과 Excel에서 문자열로 인쇄 할 수 없습니다. libreoffice calc에서 "Format as Number (Shift + ctrl + 1)"옵션을 사용하는 것처럼 숫자 값이어야합니다).

(테스트를 위해 Python 3.8.5 및 LibreOffice Calc를 사용하고 있지만 결과는 Excel 2016에서 작동하도록되어 있습니다.)

그게 가능합니까? 도와 주셔서 감사하고 제 영어에 대해 죄송합니다!

답변

DonLarry Jan 06 2021 at 07:11

나는 이 다른 질문 을 찾았 지만 다르지만 대답은 동일하다고 생각합니다.

from openpyxl import load_workbook

wb = load_workbook('a.xlsx')
ws = wb[wb.sheetnames[0]]
cell11 = ws.cell(1, 1)
cell11.number_format = '#,##0.00'
wb.save('b.xlsx')
wb.close()

그것은 해당 형식으로 작동하지만이 작동하지 않는 것 같습니다 '#.##0,00'형식

DonLarry Jan 05 2021 at 21:55

이것을 확인하십시오 https://xlsxwriter.readthedocs.io/working_with_pandas.html

set_column ()을 사용하여 날짜 / 날짜 시간이 아닌 다른 열 데이터를 형식화 할 수 있습니다.

다음에서 서식 예제 코드를 변경해보십시오.

format1 = workbook.add_format({'num_format': '#,##0.00'})

이에:

format1 = workbook.add_format({'num_format': '#.##0,00'})