我試圖使用下面的代碼來繪製圖形以顯示每小時的速度。處理大量行時的空圖
import pandas as pd
import datetime
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import style
style.use('ggplot')
import glob, os
taxi_df = pd.read_csv('ChicagoTaxi.csv')
taxi_df['trip_start_timestamp'] = pd.to_datetime(taxi_df['trip_start_timestamp'], format = '%Y-%m-%d %H:%M:%S', errors = 'raise')
taxi_df['trip_end_timestamp'] = pd.to_datetime(taxi_df['trip_end_timestamp'], format = '%Y-%m-%d %H:%M:%S', errors = 'raise')
#For filtering away any zero values when trip_Seconds or trip_miles = 0
filterZero = taxi_df[(taxi_df.trip_seconds != 0) & (taxi_df.trip_miles != 0)]
filterZero['trip_seconds'] = filterZero['trip_seconds']/60
filterZero['trip_seconds'] = filterZero['trip_seconds'].apply(lambda x: round(x,0))
filterZero['speed'] = filterZero['trip_miles']/filterZero['trip_seconds']
filterZero['speed'] *= 60
filterZero = filterZero.reset_index(drop=True)
filterZero.groupby(filterZero['trip_start_timestamp'].dt.strftime('%w'))['speed'].mean().plot()
plt.xlabel('Day')
plt.ylabel('Speed(Miles per Minutes)')
plt.title('Mean Miles per Hour By Days')
plt.show() #Not working
實施例的行
0 2016-01-13 06:15:00 8.000000
1 2016-01-22 09:30:00 10.500000
小數據集:[1250219行×2列]
大數據集:[15172212行×2列]
對於較小的數據集的代碼完美的作品,並顯示情節。然而,當我試圖使用一個包含1500萬行的數據集時,所顯示的圖是空的,因爲儘管運行mean(),值仍然是「inf」。我在這裏做錯了什麼?
0 inf
1 inf
...
5 inf
6 inf
速度是白天「英里每小時」!我正在嘗試所有的時間格式,所以在圖片中有一個不匹配的抱歉。失敗繪圖(大數據集)的
圖片:
成功繪製(更小的數據集)的圖像:
我有點懷疑,該地塊確實是空的。它可能更傾向於繪製的部分位於邊緣或軸線之外。 – ImportanceOfBeingErnest
縮小地段 - 以防萬一 – doctorlove
我用兩張圖顯示了較小和較大的數據集的繪圖更新了問題。 – WhiteSolstice