Python pandas selecciona filas por lista de fechas

Cómo seleccionar múltiples filas de un dataframe por lista de fechas

dates = pd.date_range('20130101', periods=6) df = pd.DataFrame(np.random.randn(6,4), index=dates, columns=list('ABCD')) In[1]: df Out[1]: ABCD 2013-01-01 0.084393 -2.460860 -0.118468 0.543618 2013-01-02 -0.024358 -1.012406 -0.222457 1.906462 2013-01-03 -0.305999 -0.858261 0.320587 0.302837 2013-01-04 0.527321 0.425767 -0.994142 0.556027 2013-01-05 0.411410 -1.810460 -1.172034 -1.142847 2013-01-06 -0.969854 0.469045 -0.042532 0.699582 myDates = ["2013-01-02", "2013-01-04", "2013-01-06"] 

Así que la salida debería ser

  ABCD 2013-01-02 -0.024358 -1.012406 -0.222457 1.906462 2013-01-04 0.527321 0.425767 -0.994142 0.556027 2013-01-06 -0.969854 0.469045 -0.042532 0.699582 

Puede usar el método index.isin() para crear un índice lógico para la subcontratación:

 df[df.index.isin(myDates)] 

introduzca la descripción de la imagen aquí

Convierte tu entrada en un DateTimeIndex:

 df.loc[pd.to_datetime(myDates)] ABCD 2013-01-02 -0.047710 -1.827593 -0.944548 -0.149460 2013-01-04 1.437924 0.126788 0.641870 0.198664 2013-01-06 0.408820 -1.842112 -0.287346 0.071397