преобразование столбцов в формат финансового учета условное форматирование - PullRequest
2 голосов
/ 11 марта 2019

У меня есть датафрейм для панд, который выглядит следующим образом:

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)

Ответы [ 2 ]

2 голосов
/ 11 марта 2019

Предположим, у вас есть

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.ExcelWriter и , ссылаясь на документацию , чтобы получить

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

1 голос
/ 11 марта 2019

Я заметил, что вы спрашивали о условном форматировании , но, возможно, вы могли бы рассмотреть возможность использования пользовательского числового формата , например, такого:

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

Что дает:

Custom format sample

Чтобы создать пользовательский формат, щелкните правой кнопкой мыши ячейки, выберите Format cells... и введите правило:

Custom format setting

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...