python - 每次通过新日期时如何更新数据框
问题描述
我正在构建一个仪表板,它根据输入日期生成报告。作为报告的一部分,生成了 5 个 csv,它们以下拉方式显示并可供下载。问题是正在读取 csv 的数据帧在生成新报告后没有得到更新。它仍然保存上次运行的数据。我该如何解决?
from kontekst_report_server_datewise import kontekst
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']
# external_stylesheets = ['https://maxcdn.bootstrapcdn.com/bootstrap/3.3.0/css/bootstrap.min.css']
app = dash.Dash(__name__, external_stylesheets=external_stylesheets)
app.layout = html.Div([
dcc.DatePickerRange(id='date-picker-range',
start_date=datetime(2019, 4, 3), end_date=datetime(2019, 4, 4)),
dcc.Dropdown(
id='my-dropdown',
options=[
{'label' : 'Returns Summary' , 'value' : 'df1'},
{'label' : 'Return Guide Doc Details' , 'value' : 'df2'},
{'label' : 'Return Guide id Counts' , 'value' : 'df3'},
{'label' : 'Non Return Guide id Counts', 'value' : 'df4'},
{'label' : 'Order Creation Details' , 'value' : 'df5'}
],
# value='df1'
# multi = True
),
html.Div(id='output-container'),
html.A('Download CSV', id = 'my-link'),
html.Div(id='kontekst')
])
@app.callback(
dash.dependencies.Output('output-container', 'children'),
[dash.dependencies.Input('my-dropdown', 'value')])
def update_output(value):
df1 = pd.read_csv('returns_summary.csv')
df2 = pd.read_csv('ReturnGuideDocDetails.csv')
df3 = pd.read_csv('Return_guideid_counts.csv')
df4 = pd.read_csv('NonReturn_guideid_counts.csv')
df5 = pd.read_csv('OrderCreationdetails.csv')
if value == 'df1':
return generate_table(df1)
elif value == 'df2':
return generate_table(df2)
elif value == 'df3' :
return generate_table(df3)
elif value == 'df4' :
return generate_table(df4)
elif value == 'df5' :
return generate_table(df5)
@app.callback(Output('my-link', 'href'), [Input('my-dropdown', 'value')])
def update_link(value):
return '/dash/urlToDownload?value={}'.format(value)
if __name__ == '__main__':
app.run_server(debug=True)```
解决方案
推荐阅读
- html - 如何在与其父级相同宽度之后定义伪元素::
- javascript - 在 div JavaScript ajax 中显示输入数据(无 jquery)
- java - OOP 链接类
- c# - 根据位置管理用户池
- python - np.exp 溢出解决方法
- python - GLM R 与 Python
- postman - Newman & Postman:如何使用 Newman 从文件中读取输入
- html - 为什么我在输入电子邮件时没有显示我的订单状态?
- asp.net-mvc-5 - CS0012 类型“XtraReport”在未引用的程序集中定义
- c# - 当玩家移动时需要帮助退出 IEnumerator