【问题标题】:Define a function everytime I need to use it python每次我需要使用它时定义一个函数python
【发布时间】: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


    【解决方案1】:

    我需要查看您在循环中进行函数调用的部分,但根据错误,您似乎在某些时候重用了函数的名称,因此第二次它尝试调用该函数,该名称实际上引用了一个 DataFrame 对象。

    【讨论】:

      【解决方案2】:

      我在我的电脑上运行,它运行清晰,但只有一次。 你的循环在哪里?

      【讨论】:

      • 这应该是对其他帖子的评论而不是答案。
      猜你喜欢
      • 2011-03-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-28
      • 1970-01-01
      • 1970-01-01
      • 2018-08-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多