Axes3D从DateTime绘制线框

时间:2017-12-28 21:26:37

标签: python pandas datetime matplotlib plot

我正在使用Axes3D,我想创建一个包含两个花车的3d图和一个熊猫系列的时间戳。情节函数如下所示:

ax.plot_wireframe(X = response['PCT_MONEYNESS'], Y = response['IVOL'], Z=response['EXPIRE_DT'])

当我尝试这个时,我收到了错误

"ufunc multiply cannot use operands with types dtype('float64') and dtype('<M8[ns]')"

我可以将日期时间改为几天,所以我回到我的数据框并使用以下代码进行编辑

response['EXPIRE_DT'] = response['EXPIRE_DT'].apply(lambda x: (x.to_pydatetime()-datetime.datetime.today()).days).astype(float)

当我只返回响应['EXPIRE_DT']时,我得到一个pandas系列数据类型float,这是预期的。但是,错误仍然存​​在。是否有另一个原因导致此错误弹出,尽管我没有尝试使用数据类型<M8[ns]绘制任何内容?

编辑:根据要求,在编辑之前和之后从响应['EXPIRE_DT']输出。

在 -

ID
AAPL US 01/19/18 P85 Equity      2018-01-19
AAPL US 02/09/18 P170 Equity     2018-02-09
AAPL US 02/09/18 P167.5 Equity   2018-02-09
AAPL US 02/09/18 P165 Equity     2018-02-09
Name: EXPIRE_DT, dtype: datetime64[ns]

在 -

ID
AAPL US 01/19/18 P85 Equity        21.0
AAPL US 02/09/18 P170 Equity       42.0
AAPL US 02/09/18 P167.5 Equity     42.0
AAPL US 02/09/18 P165 Equity       42.0
Name: EXPIRE_DT, dtype: float64

其他两个数据帧是

的系列
Name: PCT_MONEYNESS, dtype: float64

Name: IVOL, dtype: float64

分别。所以这三个变量都应该是float64

类型

0 个答案:

没有答案