Home > OS >  I clearly see a positional argument defined, so why is it giving me this error?
I clearly see a positional argument defined, so why is it giving me this error?

Time:11-30

I'm trying to condense my file format. I've changed the headers to match my function. It's worked previously, but with this new file I'm getting a positional argument error.

input_fname = 'basic.xlsx'  # input filename
output_fname = 'basic-condensed.xlsx'  # output filename
basic_all = pd.read_excel(input_fname)

catalog_id_column = 'Product Number'
price_columns = 'List Price'
size_column = 'Size'

basic_all_condensed = condense_excel_multiprice(basic_all, price_columns, size_column)

writer = pd.ExcelWriter(output_fname,
                        engine='xlsxwriter',
                        options={'strings_to_urls': False})

gbio_abs_condensed.to_excel(writer, index=False, encoding='utf-8')
writer.close()

TypeError                                 Traceback (most recent call last)
<ipython-input-146-614ba8c55380> in <module>
     22 
     23 
---> 24 basicbio_all_condensed = condense_excel_multiprice(basicbio_all, price_columns, size_column)
     25 
     26 writer = pd.ExcelWriter(output_fname,

TypeError: condense_excel_multiprice() missing 1 required positional argument: 'size_column

CodePudding user response:

Just because you have a variable called size_column doesn't mean it was passed in the same/correct position that your function's signature expected.

Take this example:

def foo(x, y, ax=None):
    return x   y

y = 1
foo(y)

This generates the error:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-3-cf0d9fb1194f> in <module>
      3 
      4 y = 1
----> 5 foo(y)

TypeError: foo() missing 1 required positional argument: 'y'

That's because I'm passing y as the first agrument, which my function refers to as x. Even though I passed y, I'm still missing one argument

CodePudding user response:

The error output is stating that there is 1 missing argument that is required by the function condense_excel_multiprice.

The function call has the local variables basic_all, price_columns, size_column but is asking for size_column which leads me to believe there is a required value missing before the size_column argument provided. Check that function definition for the arguments required to execute the function call.

  • Related