Python 如何对仪表板表格中的小数位数进行四舍五入

Python 如何对仪表板表格中的小数位数进行四舍五入,python,plotly-dash,Python,Plotly Dash,我有以下python代码: import dash import dash_html_components as html import pandas as pd df = pd.read_csv('https://raw.githubusercontent.com/dougmellon/rockies_dash/master/rockies_2019.csv') def generate_table(dataframe, max_rows=10): return html.Tabl

我有以下python代码:

import dash
import dash_html_components as html
import pandas as pd

df = pd.read_csv('https://raw.githubusercontent.com/dougmellon/rockies_dash/master/rockies_2019.csv')

def generate_table(dataframe, max_rows=10):
    return html.Table(
        # Header
        [html.Tr([html.Th(col) for col in dataframe.columns])] +

        # Body
        [html.Tr([
            html.Td(dataframe.iloc[i][col]) for col in dataframe.columns
        ]) for i in range(min(len(dataframe), max_rows))]
    )


external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']

app = dash.Dash(__name__, external_stylesheets=external_stylesheets)

app.layout = html.Div(children=[
    html.H4('Batting Stats (2019)'),
    generate_table(df)
])

if __name__ == '__main__':
    app.run_server(debug=True)
正在从此csv文件()中提取数据:

当我运行以下代码时

python app.py

它显示大于三位小数的数据-这不在我的csv文件中

我已经尝试了三到四次手动重新输入数据并将CSV重新上传到github,但由于某些原因,仍然存在大于三位小数的数据


有人对我如何解决这个问题有什么建议吗?

我会检查这个数据帧,也许会有帮助-

或者干脆试试-

pd.options.display.float_format = '${:.2f}'.format
我刚刚在一个DashTable论坛上读到- 您可以格式化dataframe中的数据,DataTable将按原样显示它们。例如:

要显示百分比值,请执行以下操作:

table_df['col_name']=table_df['col_name'].map('{:,.2f}%'.format)
要显示不带小数部分的浮点类型,请执行以下操作:

table_df['col_name']=table_df['col_name'].map("{:,.0f}".format)

您需要在Dash DataTable构造函数的
columns
参数中沿以下行传递每列类型和格式说明符:

DataTable(..., columns=[{'id': 'one', 'type':'numeric', 'format': {'specifier': '.2f'}}])

关于为什么要添加额外的数字,你有什么想法吗?不确定,这是讨论的链接-看,我发现,但这是针对那些实际小数位数更大并四舍五入到特定小数点的数据。出于某种原因,我的代码正在添加数据集中甚至没有的数字。我正在想办法。顺便说一句,谢谢你抽出时间!几个月前我就遇到过类似的事情。我认为它增加数字的原因可能是因为它们已经存在了。但是,由于与脚本中的显示格式有关的原因,脚本中的显示格式最初不会显示它们。您可以通过更改原始脚本中的显示格式进行检查,并查看这些数字是否出现。有趣。这给了我一些尝试的机会。非常感谢。