panda xlsxwriter, 표 머리글 형식 지정 - 시트 머리글 아님
xlsxwriter를 사용하여 판다 DataFrame to_excel을 저장하고 있습니다.헤더의 글꼴 변경을 제외한 모든 데이터(컬럼 너비, 글꼴 크기 등)의 포맷을 할 수 있었습니다만, 그 방법을 찾을 수 없었습니다.예를 들어 보겠습니다.
import pandas as pd
data = pd.DataFrame({'test_data': [1,2,3,4,5]})
writer = pd.ExcelWriter('test.xlsx', engine='xlsxwriter')
data.to_excel(writer, sheet_name='test', index=False)
workbook = writer.book
worksheet = writer.sheets['test']
font_fmt = workbook.add_format({'font_name': 'Arial', 'font_size': 10})
header_fmt = workbook.add_format({'font_name': 'Arial', 'font_size': 10, 'bold': True})
worksheet.set_column('A:A', None, font_fmt)
worksheet.set_row(0, None, header_fmt)
writer.save()
헤더의 형식을 설정하려고 하는 마지막 행은 아무것도 하지 않습니다.
먼저 기본 헤더 스타일을 재설정하고 다음으로 변경할 수 있습니다.
pd.core.format.header_style = None
모두 함께:
import pandas as pd
data = pd.DataFrame({'test_data': [1,2,3,4,5]})
writer = pd.ExcelWriter('test.xlsx', engine='xlsxwriter')
pd.core.format.header_style = None
data.to_excel(writer, sheet_name='test', index=False)
workbook = writer.book
worksheet = writer.sheets['test']
font_fmt = workbook.add_format({'font_name': 'Arial', 'font_size': 10})
header_fmt = workbook.add_format({'font_name': 'Arial', 'font_size': 10, 'bold': True})
worksheet.set_column('A:A', None, font_fmt)
worksheet.set_row(0, None, header_fmt)
writer.save()
jmcnamara의 설명 감사합니다.
Excel에서 셀 형식은 열 형식을 재정의합니다.그pd.core.format.header_style
는 형식으로 변환되어 헤더 내의 각 셀에 적용됩니다.따라서 디폴트는 에 의해 덮어쓸 수 없습니다.set_row()
설정pd.core.format.header_style
로.None
헤더 셀에는 사용자 정의 포맷이 없기 때문에 이 포맷을 덮어쓸 수 있습니다.set_row()
.
편집: 버전0.18.1
변해야 한다
pd.core.format.header_style = None
대상:
pd.formats.format.header_style = None
편집: 버전 0.20부터 다시 변경되었습니다.
import pandas.io.formats.excel
pandas.io.formats.excel.header_style = None
고마워 krvkir
편집: 버전 0.24부터 이 기능이 필요하게 되었습니다.
import pandas.io.formats.excel
pandas.io.formats.excel.ExcelFormatter.header_style = None
크리스 베키오 고마워요
Panda 0.20.1을 사용하는 모든 사용자를 위한 최신 정보입니다.
필요한 코드는 지금인 것 같습니다.
import pandas.io.formats.excel
pandas.io.formats.excel.header_style = None
보아하니 그excel
서브모듈은 자동으로 Import되지 않기 때문에 단순히 시도만 하면 됩니다.pandas.io.formats.excel.header_style = None
혼자서는 할 수 없다AttributeError
.
팬더 0.25의 또 다른 옵션(아마도 0.24).최선의 방법은 아니지만, 나한테는 효과가 있었어.
import pandas.io.formats.excel
pandas.io.formats.excel.ExcelFormatter.header_style = None
팬더 0.24의 경우:
다음 기능은 더 이상 작동하지 않습니다.
import pandas.io.formats.excel
pandas.io.formats.excel.header_style = None
대신 셀 형식 개체를 만들고 새 셀 형식 개체를 사용하여 한 번에 한 셀씩 첫 번째 행의 내용(헤더)을 다시 쓰십시오.
이제, 당신은 미래의 증거입니다.
다음 유사 코드를 사용합니다.
# [1] write df to excel as usual
writer = pd.ExcelWriter(path_output, engine='xlsxwriter')
df.to_excel(writer, sheet_name, index=False)
# [2] do formats for other rows and columns first
# [3] create a format object with your desired formatting for the header, let's name it: headercellformat
# [4] write to the 0th (header) row **one cell at a time**, with columnname and format
for columnnum, columnname in enumerate(list(df.columns)):
worksheet.write(0, columnnum, columnname, headercellformat)
팬더 0.20에서 승인된 답변의 해답이 다시 변경되었습니다.
없음으로 설정해야 하는 형식은 다음 사이트에서 찾을 수 있습니다.
pandas.io.formats.excel.header_style
만약 당신이 팬더에 대한 헤더 스타일을 완전히 설정하고 싶지 않다면, 당신은 또한 다른 방법으로 통과할 수 있습니다.header=False
로.ExcelWriter
:
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.rand(3, 5),
columns=pd.date_range('2019-01-01', periods=5, freq='M'))
file_path='output.xlsx'
writer = pd.ExcelWriter(file_path, engine='xlsxwriter')
df.to_excel(writer, sheet_name='Sheet1', header=False, index=False )
workbook = writer.book
fmt = workbook.add_format({'num_format': 'mm/yyyy', 'bold': True})
worksheet = writer.sheets['Sheet1']
worksheet.set_row(0, None, fmt)
writer.save()
안타깝게도 add_format은 더 이상 사용할 수 없습니다.
언급URL : https://stackoverflow.com/questions/36694313/pandas-xlsxwriter-format-table-header-not-sheet-header
'programing' 카테고리의 다른 글
Git 커밋 카운트를 얻으려면 어떻게 해야 하나요? (0) | 2023.04.12 |
---|---|
홀수 위치에서 리스트 요소 추출 (0) | 2023.04.12 |
VB에 조건부 3진 연산자가 있습니까?인터넷? (0) | 2023.04.12 |
SDK 'iOS 10.0'의 제품 유형 '응용 프로그램'에 코드 서명이 필요합니다. StickerPackExtension은 개발팀의 오류가 필요합니다. (0) | 2023.04.12 |
CTE에서 테이블 내의 레코드 갱신 (0) | 2023.04.12 |