Contando los días hábiles entre dos series.

¿Hay una forma mejor que bdate_range () de medir los días hábiles entre dos columnas de fechas a través de pandas?

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 salida de:

  AB 0 1/1/2013 1/12/2013 1 2/2/2013 4/4/2013 2 3/3/2013 3/3/2013 AB 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 

¡Gracias!

brian_the_bungler estaba en la forma más eficiente de hacer esto usando el número de días de bus de numpy:

 import numpy as np A = [d.date() for d in df['A']] B = [d.date() for d in df['B']] df['DIFF'] = np.busday_count(A, B) print df 

En mi máquina, esto es 300 veces más rápido en su caso de prueba y 1000 veces más rápido en arreglos de fechas mucho más grandes.