Reputation: 1721
How to group by a given frequency let say Hourly, and create a set of box plot for one column in a time series data set ?
range = pd.date_range('2015-01-01', '2015-12-31', freq='1min')
df = pd.DataFrame(index = range)
# Average speed in miles per hour
df['speed'] = np.random.randint(low=0, high=60, size=len(df.index))
# Distance in miles (speed * 0.5 hours)
df['distance'] = df['speed'] * 0.25
# Cumulative distance travelled
df['cumulative_distance'] = df.distance.cumsum()
df.head()
How to group by a given frequency let say Hourly, and create a set of box plot for speed ? A sample output is given below.
Upvotes: 1
Views: 6753
Reputation: 150825
You can also use seaborn:
sns.boxplot(x=df.index.hour, y=df.speed)
output:
Upvotes: 2
Reputation: 153560
IIUC, you need, which gives you a box of speed during each hour of the a day:
#You need to reshape your dataframe with hours as column headers
df.set_index(df.index.hour, append=True)['speed'].unstack().plot.box()
Output:
Upvotes: 2