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()