Plotly send pandas.errors.UndefinedVariableError. - Frankduc - Oct-26-2022
Hello,
I am trying to create a chart from data in xlsx.
import pandas as pd
import plotly.express as px
dataframe1 = pd.read_excel(r'C:\Users\faceo\Documents\NinjaTrader Grid 2022-10-26 01-30 .xlsx')
print(dataframe1)
df = px.data.gapminder().query("Date=='2022-10-26'")
fig = px.line(df, x="Time", y="Close")
fig.show() Output: Date Time Open High Low Close Volume Status
0 2022-10-26 13:31 3853.50 3854.50 3853.00 3853.25 874 NaN
1 2022-10-26 13:30 3854.75 3855.00 3853.00 3853.75 2599 NaN
2 2022-10-26 13:29 3854.00 3855.25 3853.00 3855.00 2860 NaN
3 2022-10-26 13:28 3856.50 3856.50 3853.00 3853.75 4586 NaN
4 2022-10-26 13:27 3856.00 3857.00 3854.50 3856.25 4775 NaN
.. ... ... ... ... ... ... ... ...
806 2022-10-26 00:05 3836.25 3836.50 3835.50 3835.75 54 NaN
807 2022-10-26 00:04 3836.00 3836.75 3836.00 3836.00 31 NaN
808 2022-10-26 00:03 3835.00 3836.00 3835.00 3835.75 61 NaN
809 2022-10-26 00:02 3835.75 3835.75 3835.00 3835.00 62 NaN
810 2022-10-26 00:01 3836.00 3836.00 3835.75 3835.75 35 NaN
[811 rows x 8 columns]
I get this error:
Error: Traceback (most recent call last):
File "C:\Users\faceo\Documents\AI1\ninjatrader\venv\lib\site-packages\pandas\core\computation\scope.py", line 198, in resolve
return self.resolvers[key]
File "C:\Users\faceo\AppData\Local\Programs\Python\Python310\lib\collections\__init__.py", line 986, in __getitem__
return self.__missing__(key) # support subclasses that define __missing__
File "C:\Users\faceo\AppData\Local\Programs\Python\Python310\lib\collections\__init__.py", line 978, in __missing__
raise KeyError(key)
KeyError: 'Date'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\faceo\Documents\AI1\ninjatrader\venv\lib\site-packages\pandas\core\computation\scope.py", line 209, in resolve
return self.temps[key]
KeyError: 'Date'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\faceo\Documents\AI1\ninjatrader\ninjatrader.py", line 10, in <module>
df = px.data.gapminder().query("Date=='2022-10-26'")
File "C:\Users\faceo\Documents\AI1\ninjatrader\venv\lib\site-packages\pandas\util\_decorators.py", line 331, in wrapper
return func(*args, **kwargs)
File "C:\Users\faceo\Documents\AI1\ninjatrader\venv\lib\site-packages\pandas\core\frame.py", line 4463, in query
res = self.eval(expr, **kwargs)
File "C:\Users\faceo\Documents\AI1\ninjatrader\venv\lib\site-packages\pandas\util\_decorators.py", line 331, in wrapper
return func(*args, **kwargs)
File "C:\Users\faceo\Documents\AI1\ninjatrader\venv\lib\site-packages\pandas\core\frame.py", line 4601, in eval
return _eval(expr, inplace=inplace, **kwargs)
File "C:\Users\faceo\Documents\AI1\ninjatrader\venv\lib\site-packages\pandas\core\computation\eval.py", line 353, in eval
parsed_expr = Expr(expr, engine=engine, parser=parser, env=env)
File "C:\Users\faceo\Documents\AI1\ninjatrader\venv\lib\site-packages\pandas\core\computation\expr.py", line 813, in __init__
self.terms = self.parse()
File "C:\Users\faceo\Documents\AI1\ninjatrader\venv\lib\site-packages\pandas\core\computation\expr.py", line 832, in parse
return self._visitor.visit(self.expr)
File "C:\Users\faceo\Documents\AI1\ninjatrader\venv\lib\site-packages\pandas\core\computation\expr.py", line 415, in visit
return visitor(node, **kwargs)
File "C:\Users\faceo\Documents\AI1\ninjatrader\venv\lib\site-packages\pandas\core\computation\expr.py", line 421, in visit_Module
return self.visit(expr, **kwargs)
File "C:\Users\faceo\Documents\AI1\ninjatrader\venv\lib\site-packages\pandas\core\computation\expr.py", line 415, in visit
return visitor(node, **kwargs)
File "C:\Users\faceo\Documents\AI1\ninjatrader\venv\lib\site-packages\pandas\core\computation\expr.py", line 424, in visit_Expr
return self.visit(node.value, **kwargs)
File "C:\Users\faceo\Documents\AI1\ninjatrader\venv\lib\site-packages\pandas\core\computation\expr.py", line 415, in visit
return visitor(node, **kwargs)
File "C:\Users\faceo\Documents\AI1\ninjatrader\venv\lib\site-packages\pandas\core\computation\expr.py", line 723, in visit_Compare
return self.visit(binop)
File "C:\Users\faceo\Documents\AI1\ninjatrader\venv\lib\site-packages\pandas\core\computation\expr.py", line 415, in visit
return visitor(node, **kwargs)
File "C:\Users\faceo\Documents\AI1\ninjatrader\venv\lib\site-packages\pandas\core\computation\expr.py", line 536, in visit_BinOp
op, op_class, left, right = self._maybe_transform_eq_ne(node)
File "C:\Users\faceo\Documents\AI1\ninjatrader\venv\lib\site-packages\pandas\core\computation\expr.py", line 456, in _maybe_transform_eq_ne
left = self.visit(node.left, side="left")
File "C:\Users\faceo\Documents\AI1\ninjatrader\venv\lib\site-packages\pandas\core\computation\expr.py", line 415, in visit
return visitor(node, **kwargs)
File "C:\Users\faceo\Documents\AI1\ninjatrader\venv\lib\site-packages\pandas\core\computation\expr.py", line 549, in visit_Name
return self.term_type(node.id, self.env, **kwargs)
File "C:\Users\faceo\Documents\AI1\ninjatrader\venv\lib\site-packages\pandas\core\computation\ops.py", line 85, in __init__
self._value = self._resolve_name()
File "C:\Users\faceo\Documents\AI1\ninjatrader\venv\lib\site-packages\pandas\core\computation\ops.py", line 109, in _resolve_name
res = self.env.resolve(local_name, is_local=is_local)
File "C:\Users\faceo\Documents\AI1\ninjatrader\venv\lib\site-packages\pandas\core\computation\scope.py", line 211, in resolve
raise UndefinedVariableError(key, is_local) from err
pandas.errors.UndefinedVariableError: name 'Date' is not defined
Obviously i am not referring correctly my data to df = px.data.gapminder().query("Date=='2022-10-26'")
I find explanation not very precise:
https://plotly.com/python/line-charts/
Anyone has a better exemple or a solution?
Thank you
RE: Plotly send pandas.errors.UndefinedVariableError. - deanhystad - Oct-26-2022
Why are you using data.gapminder()? Plotly.data is a bunch of example datasets that are useful for demos. If you are trying to plot your own data you will not use anything from Plotly.data.
The error message means that the gapminder dataset does not have a "Date" column.
RE: Plotly send pandas.errors.UndefinedVariableError. - Frankduc - Oct-27-2022
You just change df = dataframe1 and thats it.
They could of told use that. Tutorial sucks in python.
RE: Plotly send pandas.errors.UndefinedVariableError. - deanhystad - Oct-27-2022
Don't blindly follow the tutorial. Take time to think about what you are doing. If you didn't understand what the code is supposed to do, investigate! You'll learn more from solving 1 problem than doing 10 tutorials.
|