将列转换为财务会计格式工作表条件格式

2024-06-02 07:41:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个熊猫数据框,如下所示:

A       B              C          
SDF     899501607.2   -26152567.7
ISB     464284188.7   -20278910.23
ADF     0                         
SDF     3978706912   -57575106    
All     5342492708   -104006583.9

使用工作表条件格式,我想用下面的格式显示数字(舍入,逗号,负数为(),$)

A       B                 C        
SDF     $ 899,501,607     $(26,152,568) 
ISB     $ 464,284,189     $(20,278,910) 
ADF     $ 0               $0           
SDF     $ 3,978,706,912   $(57,575,106)
All     $ 5,342,492,708   $(104,006,584)

Tags: 数据格式数字all条件逗号sdfadf
2条回答

假设你有

import io

df = pd.read_table(io.StringIO('''\
A       B              C          
SDF     899501607.2   -26152567.7
ISB     464284188.7   -20278910.23
ADF     0                         
SDF     3978706912   -57575106    
All     5342492708   -104006583.9'''), delim_whitespace=True)

然后可以使用pd.ExcelWriterreference the documentation来获得

writer = pd.ExcelWriter("output_file_name.xlsx", engine='xlsxwriter')

df.to_excel(writer, sheet_name='Sheet1', index=False)

workbook  = writer.book
worksheet = writer.sheets['Sheet1']

format1 = workbook.add_format({'num_format': '$#,##0.00_);[Red]($#,##0.00)'})
format2 = workbook.add_format({'num_format': '$#,##0.00_);[Red]($#,##0.00)'})


worksheet.set_column('B:B', 18, format1)
worksheet.set_column('C:C', 18, format2)
writer.save()

会导致

enter image description here

我注意到您询问了条件格式,但也许您可以考虑使用这样的custom number format

$#,##0;[Red]$(#,##0)

它给出:

Custom format sample

要创建自定义格式,请右键单击单元格,选择Format cells...,然后键入规则:

Custom format setting

相关问题 更多 >