I think you need map
by column 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
It is same as:
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