TypeError: unsupported operand type(s) for -: 'poly_predicted' and 'float'
时间: 2024-01-29 14:02:01 浏览: 57
这个错误是因为你正在尝试将一个多项式预测值(poly_predicted)从一个浮点数中减去,这是不合法的操作。请确保你从正确的变量中减去或将多项式预测值转换为浮点数,然后再进行计算。你可以检查一下你的代码,查看你是否正确地定义了变量和进行了正确的计算。如果你需要更多的帮助,请提供更多的代码或上下文信息。
相关问题
TypeError: unsupported operand type(s) for -: 'builtin_function_or_method' and 'Tensor'
这个错误通常发生在使用 PyTorch 时,其中一个操作数的类型错误。在此情况下,您正在尝试对一个函数或方法(`builtin_function_or_method`)和一个张量(`Tensor`)执行减法运算。
这可能是因为您错误地将函数或方法视为整数或浮点数。要解决此问题,请检查您的代码并确保您没有将函数或方法视为数字类型。
如果问题仍然存在,请提供更多上下文或代码以获取更具体的帮助。
TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
这个错误通常是由于在计算过程中出现了None值,无法与float类型进行计算导致的。您可以在计算之前先判断一下值是否为None,如果是None则跳过计算。以下是修改后的代码示例:
```
import pandas as pd
import pymysql
# 连接数据库
conn = pymysql.connect(host='localhost', port=3306, user='root', password='123456', db='daily')
# 获取所有表格名称
cursor = conn.cursor()
cursor.execute("show tables;")
tables = [table[0] for table in cursor.fetchall()]
# 遍历所有表格
for table in tables:
# 查询net_mf_amount列的数据,按照trade_date降序排列
sql = "select trade_date, net_mf_amount from `{}` order by trade_date desc;".format(table)
df = pd.read_sql(sql, conn)
# 对查询结果进行计算,将结果保存在a和b列中
if 'a' not in df.columns:
df['a'] = pd.Series([None]*len(df))
df['b'] = pd.Series([None]*len(df))
for i in range(len(df)):
if i == 0:
df.at[i, 'a'] = None
df.at[i, 'b'] = None
else:
if pd.isna(df.at[i, 'a']) and pd.isna(df.at[i, 'b']):
if pd.isna(df.at[i-1, 'net_mf_amount']) or pd.isna(df.at[i, 'net_mf_amount']):
continue
df.at[i, 'a'] = df.at[i-1, 'net_mf_amount'] - df.at[i, 'net_mf_amount']
if pd.isna(df.at[i-1, 'a']):
continue
df.at[i, 'b'] = df.at[i-1, 'a'] - df.at[i, 'a']
# 保存a和b列的值
cursor.execute("alter table `{}` add column if not exists a varchar(50);".format(table))
cursor.execute("alter table `{}` add column if not exists b varchar(50);".format(table))
for i in range(len(df)):
if pd.isna(df.at[i, 'a']) or pd.isna(df.at[i, 'b']):
continue
sql = "update `{}` set a = '{}', b = '{}' where trade_date = '{}';".format(table, df.at[i, 'a'], df.at[i, 'b'], df.at[i, 'trade_date'])
cursor.execute(sql)
# 提交修改并关闭连接
conn.commit()
cursor.close()
conn.close()
```
在代码中,我们加入了判断语句,当出现None值时,直接跳过计算即可。
阅读全文