Мне нужна помощь в понимании результатов ниже. Почему я получаю NaN для df.loc [1, 'c2']? Поскольку я не получаю ошибку такого же типа, когда существует только один индекс, это должно быть как-то связано с не указанием второго уровня мультииндекса в расчете, но у меня возникают проблемы с определением точной проблемы , Почему это работает только когда я использую .values?
df = pd.DataFrame({'i': [1,1,2,2], 'i2':[1,2,1,2], 'a':[10,20,30,40], 'b':[100,100,300,400]})
df = df.set_index('i')
df.loc[1, 'c1'] = df.loc[1, 'a'] / df.loc[1, 'b'] #Works
df = df.reset_index()
df = df.set_index(['i', 'i2'])
df.loc[1, 'c2'] = df.loc[1, 'a'] / df.loc[1, 'b'] #Fails (NaN)
df.loc[1, 'c2'].index.equals(df.loc[1, 'a'].index) #True
df.loc[1, 'c2'].index.equals(df.loc[1, 'b'].index) #True
df.loc[1, 'c3'] = df.loc[1, 'a'].values / df.loc[1, 'b'].values #Works
df.loc[1, 'c4'] = (df.loc[1, 'a'] / df.loc[1, 'b']).values #Works