我有以下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 文件( github )中提取数据:
当我运行以下代码时,
python app.py
它显示大于三位小数的数据 - 这不在我的 csv 文件中。
我已经尝试了三四次手动重新输入数据并将CSV重新上传到github,但由于某种原因,仍然存在大于三位小数的数据。
有没有人对我如何解决这个问题有任何建议?
最佳答案
我会检查这个数据框,也许它可能会有所帮助 -
How to display pandas DataFrame of floats using a format string for columns?
或者干脆试试——
pd.options.display.float_format = '${:.2f}'.format
我刚刚在其中一个 DashTable 论坛中读到 -
您可以在 Pandas 数据框中格式化数据,DataTable 将按原样显示它们。例如:
显示百分比值:
table_df['col_name']=table_df['col_name'].map('{:,.2f}%'.format)
显示不带小数部分的浮点型:
table_df['col_name']=table_df['col_name'].map("{:,.0f}".format)
关于python - 如何舍入破折号表中的小数位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59559941/