Определите функцию каждый раз, когда мне нужно ее использовать.

#python #pandas #dataframe #function

Вопрос:

Я пытаюсь использовать эту функцию в цикле for, но каждый раз, когда функция запускается во 2-й раз, она не работает и выдает эту ошибку. Я понял, что каждый раз, когда мне нужно его использовать, мне нужно выполнить ячейку, которая его определяет. Возможно ли, что я могу определить его только один раз и запустить несколько раз в цикле for, как я обычно делаю?

Спасибо и наилучшие пожелания

 def table_for_something(df_1):

    #rodeo_table.pivot_table(values=['Quantity'],index = ['Process'],aggfunc=['sum'])
    #try:
    #df_1= df_1.copy()
    df_1['Area'] = df_1['ID'].str[:5]
    df_1= df_1.loc[df_1['ID2']>0]
    df_1= df_1.pivot_table(values='Quantity',index = ['Area'],aggfunc='sum').sort_values(by='Quantity').reset_index()
    df_1= df_1.rename(columns = {'Quantity':'Units'})
    df_1['% Units'] = round(df_1['Units'] / df_1['Units'].sum() * 100,1)
    df_1.sort_values(by='Units',ascending = False)


    list_a = []
    total = df_1['Units'].sum()

    list_a.append("Grand Total")
    list_a.append(total)
    list_a.append('100%')

    df_1.at["15"] = list_a 


    df_1['% Units'] = df_1['% Units'].apply(lambda x : str(x)   '%')


        #df_1
    #except KeyError:
     #   print('something')


    return df_1
 

Ошибка, которую я получаю, заключается в следующем, но я получаю ее только тогда, когда выполняю функцию во второй раз, не объявляя ее


Обратная трассировка ошибок типа (последний последний вызов) ~AppDataLocalTemp/ipykernel_17788/1667321701.py в —-> 1 table_whatever = table_for_something(таблица)

Ошибка типа: объект «Фрейм данных» не может быть вызван

Код был слегка изменен для обеспечения конфиденциальности

Ответ №1:

Мне нужно было бы увидеть раздел, в котором вы выполняете вызов функции в цикле, но, судя по ошибке, похоже, что в какой-то момент вы могли повторно использовать имя функции, так что при второй попытке вызова функции это имя фактически ссылается на объект фрейма данных.

Ответ №2:

Я запускаю свой компьютер, и он работает четко, но только один раз. Где здесь твоя петля?

Комментарии:

1. Это должен быть комментарий к другому сообщению, а не ответ.