Я выполняю функцию apply на фрейме данных, который иногда имеет одну строку, и есть два источника фрейма данных. Один из них - результат .loc, а другой - преобразование серии в dataframe с помощью to_frame ().
Данные одинаковы в обоих из них. Он находится в рекурсивной функции, которая с f1 в качестве начального ввода, а затем запрашивает внутри функции df2 и снова вызывает функцию.
df1 = row.to_frame()
df2 = df3.loc[df3.loc['colname']== value]
Затем они выполняют ту же функцию применения, что и:
another_df = df1_or_df2.apply (lambda row:function (row))
выше отлично работает с df1, но выдает ошибку для df2 keyerror: ('id', 'occurred at index id')
для df2. Если я добавлю axis=1
, то это сработает.
Я сделал try, except
, чтобы это работало, поскольку это одноразовая вещь, но сейчас нужно улучшить скорость.
Можете ли вы сказать, почему два формата df отличаются или как я могу сделать это более эффективно?