我有一个数据框(df)看起来像:
date A
2001-01-02 1.0022
2001-01-03 1.1033
2001-01-04 1.1496
2001-01-05 1.1033
2015-03-30 126.3700
2015-03-31 124.4300
2015-04-01 124.2500
2015-04-02 124.8900
在整个时间序列中,我试图用昨天除以今天的值,并使用以下方法记录结果:
df["B"] = math.log(df["A"] / df["A"].shift(1))
但是,我得到以下错误:
TypeError: cannot convert the series to <class 'float'>
有人能告诉我怎么解决这个问题吗?我试着用以下方法来铸造浮子:
df["B"] .astype(float)
但什么都做不到。任何指导都将不胜感激。
谢谢
您可以改用numpy.log。Math.log需要一个数字,而不是数组。
如果你只是写}
df["A"].astype(float)
,你就不会改变df
。您需要将astype
方法调用的输出分配给其他对象,包括使用df['A'] = df['A'].astype(float)
的现有序列。另外,您可能希望按照@user3582076的建议使用numpy,或者在将今天的值除以昨天的值得到的序列上使用^{相关问题 更多 >
编程相关推荐