C'è un modo migliore di bdate_range() per misurare giorni lavorativi tra due colonne di date tramite panda?Il conteggio dei giorni lavorativi tra due serie
df = pd.DataFrame({ 'A' : ['1/1/2013', '2/2/2013', '3/3/2013'],
'B': ['1/12/2013', '4/4/2013', '3/3/2013']})
print df
df['A'] = pd.to_datetime(df['A'])
df['B'] = pd.to_datetime(df['B'])
f = lambda x: len(pd.bdate_range(x['A'], x['B']))
df['DIFF'] = df.apply(f, axis=1)
print df
con produzione di:
A B
0 1/1/2013 1/12/2013
1 2/2/2013 4/4/2013
2 3/3/2013 3/3/2013
A B DIFF
0 2013-01-01 00:00:00 2013-01-12 00:00:00 9
1 2013-02-02 00:00:00 2013-04-04 00:00:00 44
2 2013-03-03 00:00:00 2013-03-03 00:00:00 0
Grazie!
Eventuale duplicato: http://stackoverflow.com/questions/13019719/get-business-days-between-start-and-end-date-using-pandas (vedere il fondo per il conteggio dei giorni, anziché elencarli.) –
@DanAllan ci si sente come se stesse facendo lo stesso però, nel senso che si sta creando un intervallo di date intermedio ... tuttavia potrebbe non essere possibile ble senza farlo. : s –
Sì, sicuramente. Se stai studiando le lunghe distanze e hai solo bisogno di escludere i fine settimana (ma non le vacanze), mi aspetto che sarebbe più veloce costruire una funzione personalizzata che utilizzi i giorni della settimana per A e B e la loro differenza totale nel tempo per calcolare il numero di giorni lavorativi. –