Я использую модуль tabulate
для печати файла с фиксированной шириной, и у меня есть один столбец, который мне нужно отформатировать таким образом, чтобы было 19 знаков слева от десятичной дроби и 2 места справа от десятичное.
import pandas as pd
from tabulate import tabulate
df = pd.DataFrame.from_dict({'A':['x','y','z'],
'B':[1,1.1,11.21],'C':[34.2334,81.1,11]})
df
Out[4]:
A B C
0 x 1.00 34.2334
1 y 1.10 81.1000
2 z 11.21 11.0000
df['C'] = df['C'].apply(lambda x: format(x,'0>22.2f'))
df
Out[6]:
A B C
0 x 1.00 0000000000000000034.23
1 y 1.10 0000000000000000081.10
2 z 11.21 0000000000000000011.00
print(tabulate(df))
- - ----- -----
0 x 1 34.23
1 y 1.1 81.1
2 z 11.21 11
- - ----- -----
Можно ли каким-либо образом сохранить форматирование в столбце C, не затрагивая форматирование в столбце B? Я знаю, что могу использовать floatfmt = '0> 22.2f', но мне не нужен столбец B, чтобы выглядеть таким образом, только столбец C.
Согласно табличной документации строки, которые выглядят как десятичные дроби, будут автоматически преобразованы в числовые. Если бы я мог подавить это, отформатируйте мою таблицу перед печатью (как в примере выше), что решило бы это и для меня.