Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

192
Vistas
.Entre la función no funciona como se esperaba

Estoy encontrando algunos problemas al usar el método . between en Python.

Tengo un conjunto de datos simple que consta de ~ 59000 registros

ingrese la descripción de la imagen aquí

El formato de fecha es DD/MM/AAAA y me gustaría filtrar los días del mes de abril del año 2014.

 psi_df = pd.read_csv('thecsvfile.csv') psi_west_df = psi_df[['24-hr_psi','west']] april_records = psi_west_df[psi_west_df['24-hr_psi'].between('1/4/2014','31/4/2014')] april_records.head(100)

ingrese la descripción de la imagen aquí

Recibí el resultado por el cual la fecha salta repentinamente del 4/3/2014 (3 de abril) al 4/10/2014 (10 de abril). Este patrón se repite para cada mes y cada año hasta el año 2020 (el último año de este conjunto de datos), que no era mi intención original de obtener los datos del mes de abril del año 2014.

Como todavía soy bastante nuevo en python, decidí realizar algunas correcciones en Excel. Separé las columnas de fecha y hora y volví a ejecutar el código con la sintaxis necesaria actualizada. ingrese la descripción de la imagen aquí

 psi_df = pd.read_csv('psi_new.csv') psi_west_df = psi_df[['date','west']] april_records = psi_west_df[psi_west_df['date'].between('1/4/2014','31/4/2014')] april_records.head(100)

Todavía enfrenté el mismo problema y ahora, estoy totalmente perplejo en cuanto a por qué ocurre esto. ¿Estoy usando el método . between incorrectamente? Buscando la amable orientación e instrucciones de todos sobre por qué ocurre esto. Muy apreciado y muchas gracias a todos.

El archivo csv que estoy usando se puede obtener de este sitio web: https://data.gov.sg/dataset/historical-24-hr-psi

ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

El primer problema es que su columna de fecha no es una fecha sino una columna de objeto.

Asegúrese de que su columna sea realmente una fecha usando la función pandas to_datetime .

 psi_west_df['date'] = pd.to_datetime(psi_west_df['date'], format='%d/%m/%Y')

Después de que la columna sea realmente una columna de fecha para que la función between se ejecute sin problemas, debe darle dos objetos de fecha y no un objeto de cadena como este:

 start_day = pd.to_datetime('1/4/2014', format='%d/%m/%Y') end_day = pd.to_datetime('30/4/2014', format='%d/%m/%Y') april_records = psi_west_df[psi_west_df['date'].between(start_day, end_day)]

Así que todos juntos:

 psi_df = pd.read_csv('psi_new.csv') psi_west_df = psi_df[['date','west']] psi_west_df['date'] = pd.to_datetime(psi_west_df['date'], format='%d/%m/%Y') start_day = pd.to_datetime('1/4/2014', format='%d/%m/%Y') end_day = pd.to_datetime('30/4/2014', format='%d/%m/%Y') april_records = psi_west_df[psi_west_df['date'].between(start_day, end_day)] april_records.head(100)

Nota : este código debería funcionar en los datos después de cambiarlo con Excel, lo que significa que tiene una columna separada para datos y tiempo.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda