在Pandas DataFrame中除两个数时出现奇怪的错误

时间:2019-02-27 05:31:14

标签: python python-3.x pandas

我试图在下面将两个字段彼此分开:

c1_preds_data['adj_final_price'] = (c1_preds_data["final_price "]/c1_preds_data['adjustment'])

在Pandas DataFrame中,并收到以下错误消息:

TypeError: ufunc 'true_divide' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''

我已经尝试过df.dropna(),以防我被N / A除以,并且我尝试检查分母中是否没有零,如下所示:

c1_preds_data.loc[c1_preds_data.adjustment == 0, 'adj_final_flag'] = -99
c1_preds_data.loc[c1_preds_data.adjustment != 0, 'adj_final_flag'] = 99

它们都以非零值(99)出现

并且不确定如何解释错误消息。

1 个答案:

答案 0 :(得分:3)

您正在尝试对仅数字类型可接受的字符串执行操作。 (也许是从sql数据库中尝试保持价格数据上的点或点精度?)

如果要保持点/点精度,则应考虑将乘数作为一个整数存储在其他表中,并将其与汇率对关联。

首先,将系列重铸为浮动,然后执行操作。

c1_preds_data["final_price "] = c1_preds_data["final_price "].astype('float') c1_preds_data['adjustment'] = c1_preds_data['adjustment'].astype('float')

好像您正在使用并行回测器。祝你好运!