Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

435
Views
¿Por qué no funciona este código para trazar un histograma en una columna Pandas de valor continuo?

Estoy tratando de crear un histograma en una columna de valor continuo Trip_distance en un gran marco de datos de pandas de 1,4 millones de filas. Escribí el siguiente código:

 fig = plt.figure(figsize=(17,10)) trip_data.hist(column="Trip_distance") plt.xlabel("Trip_distance",fontsize=15) plt.ylabel("Frequency",fontsize=15) plt.xlim([0.0,100.0]) #plt.legend(loc='center left', bbox_to_anchor=(1.0, 0.5))

Pero no estoy seguro de por qué todos los valores dan el mismo gráfico de frecuencia, lo que no debería ser el caso. ¿Qué tiene de malo el código?

Datos de prueba:

 VendorID lpep_pickup_datetime Lpep_dropoff_datetime Store_and_fwd_flag RateCodeID Pickup_longitude Pickup_latitude Dropoff_longitude Dropoff_latitude Passenger_count Trip_distance Fare_amount Extra MTA_tax Tip_amount Tolls_amount Ehail_fee improvement_surcharge Total_amount Payment_type Trip_type 0 2 2015-09-01 00:02:34 2015-09-01 00:02:38 N 5 -73.979485 40.684956 -73.979431 40.685020 1 0.00 7.8 0.0 0.0 1.95 0.0 NaN 0.0 9.75 1 2.0 1 2 2015-09-01 00:04:20 2015-09-01 00:04:24 N 5 -74.010796 40.912216 -74.010780 40.912212 1 0.00 45.0 0.0 0.0 0.00 0.0 NaN 0.0 45.00 1 2.0 2 2 2015-09-01 00:01:50 2015-09-01 00:04:24 N 1 -73.921410 40.766708 -73.914413 40.764687 1 0.59 4.0 0.5 0.5 0.50 0.0 NaN 0.3 5.80 1 1.0 3 2 2015-09-01 00:02:36 2015-09-01 00:06:42 N 1 -73.921387 40.766678 -73.931427 40.771584 1 0.74 5.0 0.5 0.5 0.00 0.0 NaN 0.3 6.30 2 1.0 4 2 2015-09-01 00:00:14 2015-09-01 00:04:20 N 1 -73.955482 40.714046 -73.944412 40.714729 1 0.61 5.0 0.5 0.5 0.00 0.0 NaN 0.3 6.30 2 1.0 5 2 2015-09-01 00:00:39 2015-09-01 00:05:20 N 1 -73.945297 40.808186 -73.937668 40.821198 1 1.07 5.5 0.5 0.5 1.36 0.0 NaN 0.3 8.16 1 1.0 6 2 2015-09-01 00:00:52 2015-09-01 00:05:50 N 1 -73.890877 40.746426 -73.876923 40.756306 1 1.43 6.5 0.5 0.5 0.00 0.0 NaN 0.3 7.80 1 1.0 7 2 2015-09-01 00:02:15 2015-09-01 00:05:34 N 1 -73.946701 40.797321 -73.937645 40.804516 1 0.90 5.0 0.5 0.5 0.00 0.0 NaN 0.3 6.30 2 1.0 8 2 2015-09-01 00:02:36 2015-09-01 00:07:20 N 1 -73.963150 40.693829 -73.956787 40.680531 1 1.33 6.0 0.5 0.5 1.46 0.0 NaN 0.3 8.76 1 1.0 9 2 2015-09-01 00:02:13 2015-09-01 00:07:23 N 1 -73.896820 40.746128 -73.888626 40.752724 1 0.84 5.5 0.5 0.5 0.00 0.0 NaN 0.3 6.80 2 1.0 In [ ]:

​

 Trip_distance column 0 0.00 1 0.00 2 0.59 3 0.74 4 0.61 5 1.07 6 1.43 7 0.90 8 1.33 9 0.84 10 0.80 11 0.70 12 1.01 13 0.39 14 0.56 Name: Trip_distance, dtype: float64

ingrese la descripción de la imagen aquí

Después de 100 contenedores:

ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

EDITAR:

Después de sus comentarios, esto tiene mucho sentido por qué no obtiene un histograma de cada valor diferente. Hay 1,4 millones de filas y diez cubos discretos. Entonces, aparentemente, cada cubo es exactamente el 10% (dentro de lo que puede ver en la gráfica).


Una repetición rápida de sus datos:

 In [25]: df.hist(column='Trip_distance')

ingrese la descripción de la imagen aquí

Imprime absolutamente bien.

La función df.hist viene con un argumento de palabra clave opcional bins=10 que agrupa los datos en contenedores discretos. Con solo 10 contenedores discretos y una distribución más o menos homogénea de cientos de miles de filas, es posible que no pueda ver la diferencia en los diez contenedores diferentes en su gráfico de baja resolución:

 In [34]: df.hist(column='Trip_distance', bins=50)

ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo Report

0

Aquí hay otra forma de trazar los datos, implica convertir date_time en un índice, esto podría ayudarlo para futuros cortes

 #convert column to datetime trip_data['lpep_pickup_datetime'] = pd.to_datetime(trip_data['lpep_pickup_datetime']) #turn the datetime to an index trip_data.index = trip_data['lpep_pickup_datetime'] #Plot trip_data['Trip_distance'].plot(kind='hist') plt.show()
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!