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