这是我的 Pandas 数据框:
prices = pandas.DataFrame([1035.23, 1032.47, 1011.78, 1010.59, 1016.03, 1007.95,
1022.75, 1021.52, 1026.11, 1027.04, 1030.58, 1030.42,
1036.24, 1015.00, 1015.20])
这是我的
daily_return
函数:def daily_return(prices):
return prices[:-1] / prices[1:] - 1
这是此函数的输出:
0 NaN
1 0
2 0
3 0
4 0
5 0
6 0
7 0
8 0
9 0
10 0
11 0
12 0
13 0
14 NaN
为什么会有这个输出?
最佳答案
由于操作将对索引进行对齐,因此可以将DataFrame之一转换为数组:
prices[:-1].values / prices[1:] - 1
或者
prices[:-1] / prices[1:].values - 1
取决于所需结果的索引。
或使用
shift()
方法:prices.shift(1) / prices - 1
和:
prices / prices.shift(1) - 1
关于python - 使用Pandas DataFrame计算每日 yield ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20000726/