我对python很陌生,并且一直在为这个简单的代码而挣扎:
所以在最后一行中,我得到了对象类型: pandas.core.series.Series,但是当我在2D数组中使用它时,这个类型会导致一个错误,如何使用'ticker‘定义来获得结果中的浮动?
我知道我可以这样写,所以我的结果是浮动:
Volatility = sec_returns['GME'].std() * 250 ** 0.5所以'GME‘在括号中,而不是代码中,但是我想使用滴答的定义,这样我就可以更改代码了。谢谢你\
ticker = ['GME']sec_data = pd.DataFrame()
for t in ticker:
sec_data[t] = wb.DataReader(t, data_source = 'yahoo', start ='2007-01-01')['Adj Close']sec_returns = np.log(sec_data / sec_data.shift(1))Volatility = sec_returns[ticker].std() * 250 ** 0.5
print(Volatility)type(Volatility)Output: pandas.core.series.Series发布于 2021-06-29 08:33:49
您的例子是做两件不同的事情,当涉及到插入一个DataFrame时。
Volatility = sec_returns['GME'].std() * 250 ** 0.5与以下情况不同:
ticker = ['GME']
Volatility = sec_returns[ticker].std() * 250 ** 0.5因为在第一个实例中,您将使用列名将字符串传递给DataFrame,而在第二个实例中,您将使用字符串列表进行子设置。因此第二个实例实际上如下所示:
Volatility = sec_returns[['GME']].std() * 250 ** 0.5这将返回一个pd.Series而不是一个float。要从pd.Series获取值,您可以这样做:
ticker = ['GME']
Volatility = sec_returns[ticker].std() * 250 ** 0.5
Volatility.values[0].values将该系列作为numpy数组返回,我们将从该数组中检索第一项。
发布于 2022-03-21 06:02:33
尝试了这里提出的所有方法,但遗憾的是,没有一种方法奏效。相反,发现这是有效的:
df‘列’=pd.to_numeric(df‘列’,错误=‘胁迫’)
然后使用以下方法进行检查:
print(df.info())
https://stackoverflow.com/questions/68172978
复制相似问题