我有一个现有的数据框(df1),格式如下:
Date Adj Close Return
2019-01-02 475.365143 NaN
2019-01-03 468.232574 -0.015004
2019-01-04 480.232086 0.025627
2019-01-07 479.644653 -0.001223
2019-01-08 491.644226 0.025018
和一个单独的 csv 文件 (df2):
Date Daily SONIA Rate
0 2019-01-02 0.7044
1 2019-01-03 0.7048
2 2019-01-04 0.7046
3 2019-01-07 0.7052
4 2019-01-08 0.7052
我正在尝试向第一个数据帧 (df1) 添加另一列,该列从 df1 中的返回中减去每日 SONIA 费率 (df2),并返回 df1 中的一列及其结果。我尝试过的每一种可能的方法都会返回以下内容:
Date Adj Close Return Exreturn
2019-01-02 475.365143 NaN NaN
2019-01-03 468.232574 -0.015004 NaN
2019-01-04 480.232086 0.025627 NaN
2019-01-07 479.644653 -0.001223 NaN
2019-01-08 491.644226 0.025018 NaN
非常感谢一些帮助。
谢谢!
最佳答案
看来您的索引不同。 df1
似乎将 Date
作为索引,但 df2
将 Date
作为列。
将 df2
的索引设置为 Date
,您应该能够按预期创建列:
df2 = df2.set_index('Date')
df1['Exreturn'] = df1['Return'] - df2['Daily SONIA Rate']
# Date Adj Close Return Exreturn
# 2019-01-02 475.365143 NaN NaN
# 2019-01-03 468.232574 -0.015004 -0.719804
# 2019-01-04 480.232086 0.025627 -0.678973
# 2019-01-07 479.644653 -0.001223 -0.706423
# 2019-01-08 491.644226 0.025018 -0.680182
关于python - 当我尝试将 csv 数据帧中的列添加到在 pandas 上打开的现有数据帧时,为什么我不断收到 'Nan' 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66936806/