How to do it...

  1. Read in the Schlumberger stock data, put the Date column into the index, and convert it to a DatetimeIndex:
>>> slb = pd.read_csv('data/slb_stock.csv', index_col='Date', 
parse_dates=['Date'])
>>> slb.head()
  1. Select the closing price as a Series and use the describe method to return summary statistics as a Series:
>>> slb_close = slb['Close']
>>> slb_summary = slb_close.describe(percentiles=[.1, .9])
>>> slb_summary
count 1895.000000 mean 79.121905 std 11.767802 min 51.750000 10% 64.892000 50% 78.000000 90% 93.248000 max 117.950000 Name: Close, dtype: float64
  1. Using boolean selection, select all closing prices in the upper or lower tenth percentile:
>>> upper_10 = slb_summary.loc['90%']
>>> lower_10 = slb_summary.loc['10%']
>>> criteria = (slb_close < lower_10) | (slb_close > upper_10)
>>> slb_top_bottom_10 = slb_close[criteria]
  1. Plot the resulting filtered Series in light gray on top of all closing prices in black. Use the matplotlib library to draw horizontal lines at the tenth and ninetieth percentiles:
>>> slb_close.plot(color='black', figsize=(12,6))
>>> slb_top_bottom_10.plot(marker='o', style=' ',
ms=4, color='lightgray')

>>> xmin = criteria.index[0]
>>> xmax = criteria.index[-1]
>>> plt.hlines(y=[lower_10, upper_10], xmin=xmin,
xmax=xmax, color='black')
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.142.255.140