Si tiene una lista de fechas basada en una condición, por ejemplo:
df
date random_values
2020-03-01 1
2020-03-02 2
2020-03-03 2
2020-04-01 8
2020-04-02 9
2020-04-03 10
2020-05-01 7
2020-05-02 8
2020-05-03 10
2020-05-04 20
ex condición: df ['fecha']. donde (df.valores_aleatorios> = 8)
que produciría las siguientes fechas:
2020-04-01
2020-04-02
2020-04-03
2020-05-02
2020-05-03
2020-05-04
Si bien esta cantidad de fechas está bien, por ejemplo, mis datos tenían cientos de fechas. Quiero reducir las fechas para que produzca una salida similar a esta:
2020-04-01: 2020-04-03
2020-05-01: 2020-05-04
Solo estoy tratando de reducir la cantidad de fechas y convertirlas fácilmente en rangos de fechas. ¿Alguna forma fácil de hacer esto?
Prueba esto también:
df = pd.read_clipboard()
df['date'] = pd.to_datetime(df['date'])
s = df.loc[df['random_values'] >= 8, 'date']
grp = (s.diff() != pd.Timedelta(days=1)).cumsum()
s.groupby(grp).agg(lambda x: f"{x.iloc[0].strftime('%Y-%m-%d')}: {x.iloc[-1].strftime('%Y-%m-%d')}")
Producción:
date
1 2020-04-01: 2020-04-03
2 2020-05-02: 2020-05-04
Name: date, dtype: object
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras