Я пытаюсь написать функцию .apply (), которая сравнивает столбец моего основного df и столбец отдельного df и возвращает строку.Я хочу создать новый столбец в моей основной df с помощью функции apply.Код выглядит следующим образом:
def a_by_a(row):
if row.loc['a'] > df.groupby(['a_bins']).mean()['a'][str(row.loc['a_bins'])]:
return "Above average"
else:
return "Below average"
df['a_gby_b'] = df.apply(a_by_a,axis=1)
Я пытаюсь сравнить то, что в столбце a, со средним значением, сгруппированным по a_bins, где я скопировал данные.Когда я запускаю этот код, я получаю эту ошибку:
('bin #1', 'occurred at index 0')
Однако я создал тестовую функцию для проверки [str(row.loc['a_bins'])]
(где я получаю свою ошибку), которая работает:
def test(row):
return str(row.loc['a']) + str(row.loc['bins'])
df.apply(test, axis=1)
Кто-нибудь знает, что я делаю не так?