@6ReD6

Почему увеличивается разрядность дробной части после округления в pandas?

почему увеличивается разрядность дробной части после округления в pandas? После округления данных до двух знаков после запятой при выводе сводной таблицы, все данные отображаются корректно, в том числе и строка итогов. Но если я обращаюсь к сводной таблице через iloc, то почему-то у одного значения отображается аж одиннадцать знаков и до меня не доходит почему так. Подскажите почему так происходит и как с этим бороться. Код с данными прилагается.

import pandas as pd

dict_conv = {
    'Глава': lambda x: str(x),
    'Код вида расходов': lambda x: str(x)
    }

df = pd.read_excel("current_year's_data.xlsx", converters=dict_conv)

df.loc[:, ['ЛБО на текущий финансовый год', 'БО на текущий финансовый год',
           'Исполнение (сумма)']] /= 1000000

df[
    ['ЛБО на текущий финансовый год',
     'БО на текущий финансовый год', 'Исполнение (сумма)']
    ] = df[
        ['ЛБО на текущий финансовый год',
         'БО на текущий финансовый год', 'Исполнение (сумма)']
         ].round(2)

pivot_table_type_of_expenses = pd.pivot_table(
    df,
    values=[
        'ЛБО на текущий финансовый год',
        'БО на текущий финансовый год',
        'Исполнение (сумма)'
    ],
    index='Код вида расходов',
    margins=True,
    margins_name='Итого',
    aggfunc='sum'
)

pivot_table_type_of_expenses.reset_index(inplace=True)

print(pivot_table_type_of_expenses)
print(pivot_table_type_of_expenses.iloc[6, 1])


https://disk.yandex.ru/i/eqtvLAyWBjkw9Q
  • Вопрос задан
  • 94 просмотра
Решения вопроса 1
Maksim_64
@Maksim_64
Data Analyst
Это не проблема pandas, здесь iloc или любой другой метод не при чем. Это проблема как это число показывается в консоли. Не все числа возможно представить с двумя точками после запятой.

bad_rounding_result = pivot_table_type_of_expenses.iloc[6, 1]
df1 = pd.DataFrame({'A':[bad_rounding_result]})
print(df1) 
print(df1.iloc[0,0])
В df1 оно будет нормально, будешь доставать будет вот такое. Если тебе надо после вычеслений рапортовать это где то ну отформатируй его строкой да и все.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы