Excel中的Excel VLOOKUP等效于pandas

Al_*_*der 9 python pandas

我有以下数据框:

               A           B            C
 Index
2001-06-30    100       2001-08-31     (=value of A at date B)
2001-07-31    200       2001-09-30      ...
2001-08-31    300       2001-10-31      ...
2001-09-30    400       2001-11-30      ...
Run Code Online (Sandbox Code Playgroud)

BA一些向前移动的列的日期组成.我想生成C由列A上的值组成的列date B.(最好是在逻辑了Excel VLOOKUP公式将这样做.我不是在寻找用于简单地移位(-2)在这里,因为在realtity之间的偏移BIndex不总是相等).

我试过df.loc['B', 'A']但这很可能是简单化并产生错误.

jez*_*ael 15

我认为你需要map按列A:

df['C'] = df.B.map(df.A)
print (df)
              A          B      C
Index                            
2001-06-30  100 2001-08-31  300.0
2001-07-31  200 2001-09-30  400.0
2001-08-31  300 2001-10-31    NaN
2001-09-30  400 2001-11-30    NaN
Run Code Online (Sandbox Code Playgroud)

它与:

df['C'] = df.B.map(df.A.to_dict())
print (df)
              A          B      C
Index                            
2001-06-30  100 2001-08-31  300.0
2001-07-31  200 2001-09-30  400.0
2001-08-31  300 2001-10-31    NaN
2001-09-30  400 2001-11-30    NaN
Run Code Online (Sandbox Code Playgroud)