以下のコードを使用してグラフをプロットし、1時間あたりの速度を表示しようとしました。膨大な数の行を処理するときに空のプロット
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
速度は「1時間あたりのマイル数」です。私はすべての時間形式を試していたので、写真に不一致が残っています。あなたが行うので、私は本当に確認することはできません
を丸めずに試してみてください。むしろプロットされた部分が非常に端にあるか軸の外側にあることがあります。 – ImportanceOfBeingErnest
ズームアウトロット - 場合によっては – doctorlove
小さいデータセットと大きいデータセットのプロットを示す2つの画像で質問を更新しました。 – WhiteSolstice