Sto cercando di scoprire se Date
cade nel PromoInterval
in una cornice di dati.Applicare la funzione con args nei panda
print dset1
Store Date PromoInterval
1760 2 2013-05-04 Jan,Apr,Jul,Oct
1761 2 2013-05-03 Jan,Apr,Jul,Oct
1762 2 2013-05-02 Jan,Apr,Jul,Oct
1763 2 2013-05-01 Jan,Apr,Jul,Oct
1764 2 2013-04-30 Jan,Apr,Jul,Oct
def func(a,b):
y = b.split(",")
z = {1:'Jan',2:'Feb',3:'Mar', 4:'Apr',5:'May',6:'Jun',7:'Jul',8:'Aug',9:'Sep',
10:'Oct',11:'Nov',12:'Dec'}
return (z[a] in y)
dset1.apply(func, axis=1, args = (dset1['Date'].dt.month, dset1['PromoInterval']))
ha colpito alle errore di seguito: set
dset1.apply(func, axis=1, args = (dset1['Date'].dt.month, >dset1['PromoInterval'])) ('func() takes exactly 2 arguments (3 given)', u'occurred at index 1760')
dati:
{'Date': {1760: Timestamp('2013-05-04 00:00:00'),
1761: Timestamp('2013-05-03 00:00:00'),
1762: Timestamp('2013-05-02 00:00:00'),
1763: Timestamp('2013-05-01 00:00:00'),
1764: Timestamp('2013-04-30 00:00:00')},
'PromoInterval': {1760: 'Jan,Apr,Jul,Oct',
1761: 'Jan,Apr,Jul,Oct',
1762: 'Jan,Apr,Jul,Oct',
1763: 'Jan,Apr,Jul,Oct',
1764: 'Jan,Apr,Jul,Oct'},
'Store': {1760: 2, 1761: 2, 1762: 2, 1763: 2, 1764: 2}}
Credo che la parola chiave è '' non args' arg'. – TomAugspurger
Scusa se ho aggiornato l'errore vecchio. – WoodChopper
Gli argomenti aggiuntivi in 'args' vengono passati come argomenti dopo gli elementi del dataframe. Dal momento che si passano due argomenti aggiuntivi, si passano effettivamente tre argomenti in totale. – IanS