#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. Это должен быть комментарий к другому сообщению, а не ответ.