使用Python Dash可视化CSV数据时运行教程代码报错如何解决?
问题解决方法
错误根源
你本地实际运行的代码存在两处可修复的问题:
- 第8行误将赋值运算符
=写为比较运算符==,这是触发本次报错的直接原因 - 缺少dash库的导入语句,修复上述问题后会触发新的
NameError
错误原因解释
当你使用==时,代码会对data["Date"]列的所有值和转换后的datetime格式值做逐元素相等判断,返回的是一个布尔数组,pandas不允许直接对多元素布尔数组做真值判定,因此抛出The truth value of an array with more than one element is ambiguous的错误。你粘贴的教程代码中该行是正确的单等号赋值逻辑,仅需要修改本地代码的符号即可。
修复后的完整代码
import dash import dash_core_components as dcc import dash_html_components as html import pandas as pd data = pd.read_csv("avocado.csv") data = data.query("type == 'conventional' and region == 'Albany'") data["Date"] = pd.to_datetime(data["Date"], format="%Y-%m-%d") data.sort_values("Date", inplace=True) app = dash.Dash(__name__) app.layout = html.Div( children=[ html.H1(children="Avocado Analytics",), html.P( children="Analyze the behavior of avocado prices" " and the number of avocados sold in the US" " between 2015 and 2018", ), dcc.Graph( figure={ "data": [ { "x": data["Date"], "y": data["AveragePrice"], "type": "lines", }, ], "layout": {"title": "Average Price of Avocados"}, }, ), dcc.Graph( figure={ "data": [ { "x": data["Date"], "y": data["Total Volume"], "type": "lines", }, ], "layout": {"title": "Avocados Sold"}, }, ), ] ) if __name__ == "__main__": app.run_server(debug=True)
后续操作
修改代码后确保你的项目目录下存在avocado.csv数据文件,直接运行即可生成对应的可视化看板。
内容的提问来源于stack exchange,提问作者cielo_azzuro
相关产品推荐
相关产品推荐

