Я пытаюсь применить функцию, которая вычисляет оценку R2, к двум столбцам фрейма данных pandas.Это работает, если сначала я группирую по некоторому другому столбцу, но при применении ко всему фрейму данных происходит сбой.
Этот код работает:
from sklearn.metrics import r2_score
df = pd.DataFrame({'cat':['A','A','B','B'], 'num1':[.1,.2,.3,.4],
'num2': [.1,.2,.3,.4]})
df.groupby('cat').apply(lambda x: r2_score(x['num1'],x['num2']))
С таким выводом:
cat
A 1.0
B 1.0
dtype: float64
Но это не работает:
df.apply(lambda x: r2_score(x['num1'],x['num2']))
С ключевой ошибкой: KeyError: ('num1', 'произошел в index cat')
Может кто-нибудь объяснить, почемув этом случае проясняется внутренняя работа функции apply и предоставляется решение для последнего применения?