【发布时间】:2021-11-17 07:19:10
【问题描述】:
我正在尝试在 for 循环中使用此函数,但每次该函数第二次运行时它都不起作用并抛出此错误。我意识到每次我需要使用它时,我都需要执行定义它的单元格。是否可以像往常一样只定义一次并在 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
我得到的错误如下,但我只有在第二次执行该函数而不声明它时才得到它
TypeError Traceback(最近一次调用最后一次) ~\AppData\Local\Temp/ipykernel_17788/1667321701.py 在 ----> 1 table_whatever = table_for_something(table)
TypeError: 'DataFrame' 对象不可调用
出于保密条款,代码已稍作修改
【问题讨论】:
标签: python pandas dataframe function