He's absolutely right, and you can easily enough STFW for examples of Jupyter notebooks.
import pytz
import matplotlib.pyplot as pyplot
import numpy as np
import pandas as pd
# code below
data = get_pricing(
'SPY' ,
start_date='2015-1-1',
end_date = '2016-9-1',
frequency='minute'
)
df = data.resample('30min',"ohlc")["open_price"]
df = df.dropna()
df["high_rank"]=df.groupby([ df.index.dayofyear])[["high"]].rank(method="max",ascending=False )
df["low_rank"]=df.groupby([df.index.dayofyear])[["low"]].rank(method="min",ascending=True)
l_or_h=df[((df.high_rank==1) |(df.low_rank==1) )].groupby( ["hour","minute"] ).agg("count")["high_rank"]
l_or_h.plot(kind='bar')
))And the benefits of Python over R oder Amitrader is, from my point of view the possibilities to glue so many different libraries together.