Python 为什么我总是得到';楠';当我尝试将csv数据框中的列添加到在pandas上打开的现有数据框时的值?

Python 为什么我总是得到';楠';当我尝试将csv数据框中的列添加到在pandas上打开的现有数据框时的值?,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个现有的数据帧(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): 我试图在第一个数据帧(df1)中

我有一个现有的数据帧(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):

我试图在第一个数据帧(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
非常感谢你的帮助


Tks

看起来您的索引不同
df1
似乎将
Date
作为索引,但
df2
Date
作为列

df2
的索引设置为
Date
,您应该能够按预期创建列:

df2=df2.设置索引(“日期”)
df1['Exreturn']=df1['Return']-df2['Daily SONIA Rate']
#日期调整关闭返回Exreturn
#2019-01-02 475.365143楠楠
# 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
在您的情况下

df1['Exreturn'] = df1['Return'] - df1.Date.map(df2.set_index('Date')['Daily SONIA Rate'])

运行df1.dtypes时的输出是什么?添加另一列的代码是什么样子的?嗨,Blake,我最后一行生成Nan值的代码是:df1.assign(Exreturn=df1['Return']-df2['Daily SONIA Rate'])TksIt worked!!!!非常感谢你!非常感谢。
df1['Exreturn'] = df1['Return'] - df1.Date.map(df2.set_index('Date')['Daily SONIA Rate'])