python - 将两个数据框列相乘得到 NaN 列
问题描述
我一直试图简单地将两个数据框列相乘,但不明白为什么它不起作用。
这是代码:
aux = self.bars['Open']
pos = self.positions
portfolio = pos * aux
这是数据:
print(self.bars.tail())
High Low Open Close Volume Adj Close
Date
2019-12-24 321.519989 320.899994 321.470001 321.230011 20270000.0 321.230011
2019-12-26 322.950012 321.640015 321.649994 322.940002 30911200.0 322.940002
2019-12-27 323.799988 322.279999 323.739990 322.859985 42528800.0 322.859985
2019-12-30 323.100006 320.549988 322.950012 321.079987 49729100.0 321.079987
2019-12-31 322.130005 320.149994 320.529999 321.859985 57077300.0 321.859985
print(pos.tail())
SPY
Date
2019-12-24 -100.0
2019-12-26 -100.0
2019-12-27 -100.0
2019-12-30 100.0
2019-12-31 -100.0
它打印的内容:
print(portfolio.tail())
2019-01-02 00:00:00 2019-01-03 00:00:00 ... 2019-12-31 00:00:00 SPY
Date ...
2019-12-24 NaN NaN ... NaN NaN
2019-12-26 NaN NaN ... NaN NaN
2019-12-27 NaN NaN ... NaN NaN
2019-12-30 NaN NaN ... NaN NaN
2019-12-31 NaN NaN ... NaN NaN
我想看到的:
PosUSD
Date
2019-12-24 -32147.0001
2019-12-26 -32164.9994
2019-12-27 -32373.9990
2019-12-30 32295.0012
2019-12-31 -32052.9999
如果也尝试过使用该.mul
功能并给出相同的结果。
解决方案
用于DataFrame.mul
按axis=0
列(系列)的多个:
#[[]] is for one column DataFrame
portfolio = aux[['SPY']].mul(bars['Open'], axis=0)
print (portfolio)
SPY
Date
2019-12-24 -32147.0001
2019-12-26 -32164.9994
2019-12-27 -32373.9990
2019-12-30 32295.0012
2019-12-31 -32052.9999
2019-12-31 -32185.9985
如果想要多列一列:
portfolio = bars.mul(aux['SPY'], axis=0)
print (portfolio)
High Low Open Close Volume \
Date
2019-12-24 -32151.9989 -32089.9994 -32147.0001 -32123.0011 -2.027000e+09
2019-12-26 -32295.0012 -32164.0015 -32164.9994 -32294.0002 -3.091120e+09
2019-12-27 -32379.9988 -32227.9999 -32373.9990 -32285.9985 -4.252880e+09
2019-12-30 32310.0006 32054.9988 32295.0012 32107.9987 4.972910e+09
2019-12-31 -32213.0005 -32014.9994 -32052.9999 -32185.9985 -5.707730e+09
Adj Close
Date
2019-12-24 -32123.0011
2019-12-26 -32294.0002
2019-12-27 -32285.9985
2019-12-30 32107.9987
2019-12-31 -32185.9985
推荐阅读
- php - 我可以只检测文件开头和结尾的换行符吗?此函数验证文件中的所有换行符?
- sql - 如何将 DELETE 与 EXCEPT 子句一起使用?
- r - 使用 R 时在 Mac 上找不到`/usr/local/clang6/lib/libomp.dylib`
- arrays - 以编程方式为 DSPSplitComplex 复数创建存储阵列
- css - css:在溢出隐藏之前可见
- javascript - ValidationPipe() 不适用于覆盖 Nestjs/Crud 中的 @Query
- python - 需要将 2000 个变量组合到一个列表中以在 for 循环中使用
- hosts - 是否可以与其他网络上的人共享我的本地主机?
- plsql - 迭代回来调整for循环中的计算值
- html - 如何在图像中间插入按钮?