Я пытаюсь запустить цикл for, чтобы сгенерировать новый фрейм данных panadas, в котором я комбинирую разные значения из другого фрейма данных, однако я продолжаю находить ошибки, так как не могу индексировать индекс из первого фрейма данных.
Любая помощь будет принята с благодарностью.
import pandas as pd
import numpy as np
df_fly = pd.DataFrame({'name': ['a','b','c','d','e'], 'left': ['UKT 1.75 7 19','UKT 1.75 7 19','UKT 1.75 7 19','UKT 1.75 7 19','UKT 1.75 7 19'], 'centre': ['UKT 3.75 9 19','UKT 4.75 3 20','UKT 4.75 3 20','UKT 4.75 3 20','UKT 4.75 3 20'], 'right': ['UKT 4.75 3 20','UKT 2 7 20','UKT 3.75 9 20','UKT 1.5 1 21','UKT 3.75 9 21']})
df_tit = df_fly['name']
df_fly = df_fly.set_index('name')
df_fly
Bonds = {'dates': ["7/2/2019", "7/1/2019", "6/28/2019"],
'UKT 1.75 7 19' : [0.75, 0.75, .762], 'UKT 3.75 9 19' : [.663, .663, .665],'UKT 4.75 3 20' : [0.68, 0.68, .691],'UKT 2 7 20' : [.679, .679, .688],'UKT 3.75 9 20' : [.602, .602, 0.61],'UKT 1.5 1 21' : [.602, .602, 0.61],'UKT 3.75 9 21':[.566, .566, .574]}
df_ytm = pd.DataFrame(Bonds,columns= ['dates', 'UKT 1.75 7 19','UKT 3.75 9 19','UKT 4.75 3 20','UKT 2 7 20','UKT 3.75 9 20','UKT 1.5 1 21','UKT 3.75 9 21'])
df_ytm['datetime'] = pd.to_datetime(df_ytm['dates'])
df_ytm = df_ytm.set_index('datetime')
df_ytm.drop(['dates'], axis=1, inplace=True)
df_ytm
def fly(left,centre, right):
return (2*(df_ytm[centre])-(df_ytm[right]+df_ytm[left]))
df_ftm=pd.DataFrame()
for flyt in df_tit:
left=df_fly.loc[flyt]['left']
centre=df_fly.loc[flyt]['centre']
right=df_fly.loc[flyt]['right']
data=fly(left,centre,right)
name = (left,centre,right)
df_ftm.append({name:data},ignore_index=True)
print(df_ftm)
Я ищу новый индексированный по времени фрейм данных с заголовками имен мух, содержащихся в df_tit