首先,我是开发界的一个全新的人
我目前正在学习人工智能/数据科学课程,我的工作之一是使用 SQL 数据库使用 Prophet 进行预测,然后使用这些预测来制作 PowerBI
但目前,我被Python代码困住了,我最初不是开发人员,所以我不知道问题出在哪里:
import sqlalchemy
from sqlalchemy import create_engine
import pandas as pd
from prophet import Prophet
import pymysql
engine = create_engine("mysql+pymysql://root:Password@localhost:3306/data")
query = "SELECT Cle_Produit, Date_Facturation, SUM(Quantite) AS Total_Quantite FROM ventes GROUP BY Cle_Produit, Date_Facturation"
df = pd.read_sql_query(query, engine)
df = df.pivot(index='Date_Facturation', columns='Cle_Produit', values='Total_Quantite')
df = df.reset_index()
df.rename(columns={'Date_Facturation': 'ds', 'Total_Quantite': 'y'}, inplace=True)
m = Prophet()
m.fit(df)
future = m.make_future_dataframe(periods=365)
forecast = m.predict(future)
forecast[['ds', 'yhat']].to_csv('forecast.csv', index=False)
它返回给我这条消息:
导入失败。交互式情节将不起作用。
回溯(最近一次调用最后一次):
文件“f:\Backup\Cours\Cours\Explo Data\app3.py”,第 9 行,位于
df = pd.read_sql_query(查询,引擎)
文件“F:\ Programmes \ Anaconda \ envs \ myenv \ lib \ site-packages \ pandas \ io \ sql.py”,
第 397 行,在 read_sql_query 中
返回 pandas_sql.read_query(
文件“F:\ Programmes \ Anaconda \ envs \ myenv \ lib \ site-packages \ pandas \ io \ sql.py”,
第 1560 行,在 read_query 中
结果 = self.execute(*args)
文件“F:\ Programmes \ Anaconda \ envs \ myenv \ lib \ site-packages \ pandas \ io \ sql.py”,
第1405行,执行中
返回 self.connectable.execution_options().execute(*args, **kwargs)
AttributeError:“OptionEngine”对象没有属性“execute”
请问有人可以帮助我吗?
我希望这个 python 脚本创建一个包含先知预测的 csv 文件。
我希望Prophet使用数据库数据中的表ventes,并且它应该使用列Cle_Produit
, Quantite
and Date_Facturation
最新版本的SQLAlchemy(2.0)已删除Engine.execute
。目前您可能需要降级 SQLAlchemy
python -m pip install --upgrade 'sqlalchemy<2.0'
(或者如果您使用 conda 则等效的 conda 命令)。
Or, as 戈德·汤普森 https://stackoverflow.com/users/2144390/gord-thompson指出他的comment https://stackoverflow.com/questions/75309237/message-optionengine-object-has-no-attribute-execute/75309321#comment132893751_75309321,将查询包装为sqlalchemy.text https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.text.
from sqlalchemy import text
# ...
with engine.begin() as conn:
query = text("""SELECT * FROM tbl""")
df = pd.read_sql_query(query, conn)
Or see 无辜的旁观者 https://stackoverflow.com/users/8459557/innocentbystander's answer https://stackoverflow.com/a/75568252/5320906寻求解决方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)