Ich habe diese Funktion:Pandas Dataframe.apply() wirft Typeerror für die Bereitstellung zu viele Argumente
def function(row,args):
array = np.array(row['Revenue'+args[0]:'Revenue'+str(args[1])]).astype(float)
if np.mean(array) < (5000/12):
return 'XXS'
if np.mean(array) < (10000/12):
return 'XS'
if np.mean(array) < (25000/12):
return 'S'
if np.mean(array) < (50000/12):
return 'M'
if np.mean(array) < (250000/12):
return 'L'
if np.mean(array) < (750000/12):
return 'XL'
if np.mean(array) >= (750000/12):
return 'XXL'
Ich möchte diese Funktion anwenden Pandas.Dataframe.apply() verwenden. Also benutze ich Argumente, da ich zwei zusätzliche Argumente übergeben muss.
df.apply(function,axis=1,args=(VARIABLE1,VARIABLE2))
Irgendwie habe ich den Fehler:
TypeError: ('klantschaling() takes 2 positional arguments but 3 were given')
ich natürlich zwei Argumente gebe: die Datenrahmen Reihe und args. Warum bekomme ich den Fehler?
einfach die Klammern das Hinzufügen funktioniert noch nicht. Etwas anderes muss getan werden, wenn ich das tue? – Duudsrednaz
@Duudsrednaz Probieren Sie 'args = ((VARIABLE1, VARIABLE2),)'? –
Funktioniert. Irgendein Grund, warum das bloße Tupel nicht funktionieren würde? – Duudsrednaz