Resta una columna de un dataframe de pandas de otro

Lo siento por una pregunta tonta, pero no puedo encontrar una manera de hacerlo fácilmente.

Tengo dos marcos de datos de pandas en Python 2.7, que están indexados por tenor:

 In [136]: rates Out[136]: A A- BBB+ BBB BBB- BB 3M 0.3150 0.3530 0.4960 0.6460 0.7910 1.9070 6M 0.3070 0.3560 0.5330 0.6740 0.8740 1.9170 1Y 0.3810 0.4470 0.6380 0.8970 1.1220 1.9900 2Y 0.7040 0.8690 1.0080 1.3510 1.6150 2.3230 3Y 1.0650 1.2870 1.4350 1.7950 2.0960 2.7590 4Y 1.5980 1.7920 1.9540 2.2660 2.6600 3.5890 5Y 2.0890 2.2660 2.4390 2.7890 3.2200 4.3280 7Y 2.9760 3.2010 3.2500 3.7600 4.3790 5.1970 8Y 3.3410 3.5410 3.5920 4.1270 4.7610 5.5170 9Y 3.5870 3.7400 3.9180 4.4630 4.9830 5.7710 10Y 3.7970 3.9410 4.1980 4.6440 5.1170 5.9630 15Y 4.6750 4.7290 5.3450 5.3440 5.3760 7.0900 20Y 5.3580 5.3760 5.5020 5.5850 5.5610 8.1920 25Y 5.2545 5.4055 5.4345 5.5435 5.5375 7.9935 30Y 5.1510 5.4350 5.3670 5.5020 5.5140 7.7950 

y

 In [137]: treas Out[137]: 2013-09-20 12:01:00 1M 0.008 3M 0.013 6M 0.043 1Y 0.104 2Y 0.332 3Y 0.688 5Y 1.478 7Y 2.109 10Y 2.735 30Y 3.762 

Me gustaría restar el treas de cada columna en rates en los índices comunes donde están presentes los datos, y tirar el rest de las filas. ¿Como podría hacerlo? Ambas rates - treas como rates.sub(treas) y rates.rsub(treas) producen marcos de datos NaN ?

Gracias.

 rates.sub(treas.iloc[:,0],axis=0).dropna() 

o

 rates.sub(treas.squeeze(),axis=0).dropna()