ml-finance-python
python scripts for finance machine learning
git clone https://9o.is/git/ml-finance-python.git
notebook.ipynb
(166239B)
1 {
2 "cells": [
3 {
4 "cell_type": "markdown",
5 "metadata": {
6 "collapsed": true
7 },
8 "source": [
9 "# EventVestor: Dividend Announcements\n",
10 "\n",
11 "In this notebook, we'll take a look at EventVestor's *Cash Dividend Announcement* dataset, available on the [Quantopian Store](https://www.quantopian.com/store). This dataset spans January 01, 2007 through the current day, and documents cash dividend announcements, including special dividends.\n",
12 "\n",
13 "## Notebook Contents\n",
14 "\n",
15 "There are two ways to access the data and you'll find both of them listed below. Just click on the section you'd like to read through.\n",
16 "\n",
17 "- <a href='#interactive'><strong>Interactive overview</strong></a>: This is only available on Research and uses blaze to give you access to large amounts of data. Recommended for exploration and plotting.\n",
18 "- <a href='#pipeline'><strong>Pipeline overview</strong></a>: Data is made available through pipeline which is available on both the Research & Backtesting environment. Recommended for custom factor development and moving back & forth between research/backtesting.\n",
19 "\n",
20 "### Free samples and limits\n",
21 "One key caveat: we limit the number of results returned from any given expression to 10,000 to protect against runaway memory usage. To be clear, you have access to all the data server side. We are limiting the size of the responses back from Blaze.\n",
22 "\n",
23 "There is a *free* version of this dataset as well as a paid one. The free sample includes data until 2 months prior to the current date.\n",
24 "\n",
25 "To access the most up-to-date values for this data set for trading a live algorithm (as with other partner sets), you need to purchase acess to the full set.\n",
26 "\n",
27 "With preamble in place, let's get started:\n",
28 "\n",
29 "<a id='interactive'></a>\n",
30 "#Interactive Overview\n",
31 "### Accessing the data with Blaze and Interactive on Research\n",
32 "Partner datasets are available on Quantopian Research through an API service known as [Blaze](http://blaze.pydata.org). Blaze provides the Quantopian user with a convenient interface to access very large datasets, in an interactive, generic manner.\n",
33 "\n",
34 "Blaze provides an important function for accessing these datasets. Some of these sets are many millions of records. Bringing that data directly into Quantopian Research directly just is not viable. So Blaze allows us to provide a simple querying interface and shift the burden over to the server side.\n",
35 "\n",
36 "It is common to use Blaze to reduce your dataset in size, convert it over to Pandas and then to use Pandas for further computation, manipulation and visualization.\n",
37 "\n",
38 "Helpful links:\n",
39 "* [Query building for Blaze](http://blaze.readthedocs.io/en/latest/queries.html)\n",
40 "* [Pandas-to-Blaze dictionary](http://blaze.readthedocs.io/en/latest/rosetta-pandas.html)\n",
41 "* [SQL-to-Blaze dictionary](http://blaze.readthedocs.io/en/latest/rosetta-sql.html).\n",
42 "\n",
43 "Once you've limited the size of your Blaze object, you can convert it to a Pandas DataFrames using:\n",
44 "> `from odo import odo` \n",
45 "> `odo(expr, pandas.DataFrame)`\n",
46 "\n",
47 "\n",
48 "###To see how this data can be used in your algorithm, search for the `Pipeline Overview` section of this notebook or head straight to <a href='#pipeline'>Pipeline Overview</a>"
49 ]
50 },
51 {
52 "cell_type": "code",
53 "execution_count": 1,
54 "metadata": {
55 "collapsed": false
56 },
57 "outputs": [],
58 "source": [
59 "# import the dataset\n",
60 "# from quantopian.interactive.data.eventvestor import dividends as dataset\n",
61 "# or if you want to import the free dataset, use:\n",
62 "from quantopian.interactive.data.eventvestor import dividends_free as dataset\n",
63 "\n",
64 "# import data operations\n",
65 "from odo import odo\n",
66 "# import other libraries we will use\n",
67 "import pandas as pd"
68 ]
69 },
70 {
71 "cell_type": "code",
72 "execution_count": 2,
73 "metadata": {
74 "collapsed": false
75 },
76 "outputs": [
77 {
78 "data": {
79 "text/plain": [
80 "dshape(\"\"\"var * {\n",
81 " event_id: float64,\n",
82 " trade_date: ?datetime,\n",
83 " symbol: string,\n",
84 " event_type: ?string,\n",
85 " event_headline: ?string,\n",
86 " event_phase: ?string,\n",
87 " div_type: ?string,\n",
88 " div_amount: float64,\n",
89 " div_currency: ?string,\n",
90 " div_ex_date: ?datetime,\n",
91 " div_record_date: ?datetime,\n",
92 " div_pay_date: ?datetime,\n",
93 " event_rating: float64,\n",
94 " sid: int64,\n",
95 " asof_date: datetime,\n",
96 " timestamp: datetime\n",
97 " }\"\"\")"
98 ]
99 },
100 "execution_count": 2,
101 "metadata": {},
102 "output_type": "execute_result"
103 }
104 ],
105 "source": [
106 "# Let's use blaze to understand the data a bit using Blaze dshape()\n",
107 "dataset.dshape"
108 ]
109 },
110 {
111 "cell_type": "code",
112 "execution_count": 3,
113 "metadata": {
114 "collapsed": false
115 },
116 "outputs": [
117 {
118 "data": {
119 "text/html": [
120 "48578"
121 ],
122 "text/plain": [
123 "48578"
124 ]
125 },
126 "execution_count": 3,
127 "metadata": {},
128 "output_type": "execute_result"
129 }
130 ],
131 "source": [
132 "# And how many rows are there?\n",
133 "# N.B. we're using a Blaze function to do this, not len()\n",
134 "dataset.count()"
135 ]
136 },
137 {
138 "cell_type": "code",
139 "execution_count": 4,
140 "metadata": {
141 "collapsed": false
142 },
143 "outputs": [
144 {
145 "data": {
146 "text/html": [
147 "<table border=\"1\" class=\"dataframe\">\n",
148 " <thead>\n",
149 " <tr style=\"text-align: right;\">\n",
150 " <th></th>\n",
151 " <th>event_id</th>\n",
152 " <th>asof_date</th>\n",
153 " <th>trade_date</th>\n",
154 " <th>symbol</th>\n",
155 " <th>event_type</th>\n",
156 " <th>event_headline</th>\n",
157 " <th>event_phase</th>\n",
158 " <th>div_type</th>\n",
159 " <th>div_amount</th>\n",
160 " <th>div_currency</th>\n",
161 " <th>div_ex_date</th>\n",
162 " <th>div_record_date</th>\n",
163 " <th>div_pay_date</th>\n",
164 " <th>event_rating</th>\n",
165 " <th>timestamp</th>\n",
166 " <th>sid</th>\n",
167 " </tr>\n",
168 " </thead>\n",
169 " <tbody>\n",
170 " <tr>\n",
171 " <th>0</th>\n",
172 " <td>151608</td>\n",
173 " <td>2007-01-02</td>\n",
174 " <td>2007-01-03</td>\n",
175 " <td>RPM</td>\n",
176 " <td>Dividend</td>\n",
177 " <td>RPM International Hikes Quarterly Dividend 9%</td>\n",
178 " <td>NaN</td>\n",
179 " <td>Increase</td>\n",
180 " <td>0.175</td>\n",
181 " <td>$</td>\n",
182 " <td>2007-01-10</td>\n",
183 " <td>2007-01-12</td>\n",
184 " <td>2007-01-31</td>\n",
185 " <td>1</td>\n",
186 " <td>2007-01-03</td>\n",
187 " <td>6557</td>\n",
188 " </tr>\n",
189 " <tr>\n",
190 " <th>1</th>\n",
191 " <td>1071875</td>\n",
192 " <td>2007-01-02</td>\n",
193 " <td>2007-01-02</td>\n",
194 " <td>SUI</td>\n",
195 " <td>Dividend</td>\n",
196 " <td>Sun Communities Declares Quarterly Dividend of...</td>\n",
197 " <td>NaN</td>\n",
198 " <td>No Change QoQ</td>\n",
199 " <td>0.630</td>\n",
200 " <td>$</td>\n",
201 " <td>2007-01-10</td>\n",
202 " <td>2007-01-12</td>\n",
203 " <td>2007-01-22</td>\n",
204 " <td>1</td>\n",
205 " <td>2007-01-03</td>\n",
206 " <td>10535</td>\n",
207 " </tr>\n",
208 " <tr>\n",
209 " <th>2</th>\n",
210 " <td>149674</td>\n",
211 " <td>2007-01-02</td>\n",
212 " <td>2007-01-03</td>\n",
213 " <td>AFG</td>\n",
214 " <td>Dividend</td>\n",
215 " <td>American Financial Increases Quarterly Dividen...</td>\n",
216 " <td>NaN</td>\n",
217 " <td>Increase</td>\n",
218 " <td>0.100</td>\n",
219 " <td>$</td>\n",
220 " <td>2007-01-11</td>\n",
221 " <td>2007-01-15</td>\n",
222 " <td>2007-01-25</td>\n",
223 " <td>1</td>\n",
224 " <td>2007-01-03</td>\n",
225 " <td>12980</td>\n",
226 " </tr>\n",
227 " </tbody>\n",
228 "</table>"
229 ],
230 "text/plain": [
231 " event_id asof_date trade_date symbol event_type \\\n",
232 "0 151608 2007-01-02 2007-01-03 RPM Dividend \n",
233 "1 1071875 2007-01-02 2007-01-02 SUI Dividend \n",
234 "2 149674 2007-01-02 2007-01-03 AFG Dividend \n",
235 "\n",
236 " event_headline event_phase \\\n",
237 "0 RPM International Hikes Quarterly Dividend 9% NaN \n",
238 "1 Sun Communities Declares Quarterly Dividend of... NaN \n",
239 "2 American Financial Increases Quarterly Dividen... NaN \n",
240 "\n",
241 " div_type div_amount div_currency div_ex_date div_record_date \\\n",
242 "0 Increase 0.175 $ 2007-01-10 2007-01-12 \n",
243 "1 No Change QoQ 0.630 $ 2007-01-10 2007-01-12 \n",
244 "2 Increase 0.100 $ 2007-01-11 2007-01-15 \n",
245 "\n",
246 " div_pay_date event_rating timestamp sid \n",
247 "0 2007-01-31 1 2007-01-03 6557 \n",
248 "1 2007-01-22 1 2007-01-03 10535 \n",
249 "2 2007-01-25 1 2007-01-03 12980 "
250 ]
251 },
252 "execution_count": 4,
253 "metadata": {},
254 "output_type": "execute_result"
255 }
256 ],
257 "source": [
258 "# Let's see what the data looks like. We'll grab the first three rows.\n",
259 "dataset[:3]"
260 ]
261 },
262 {
263 "cell_type": "markdown",
264 "metadata": {},
265 "source": [
266 "Let's go over the columns:\n",
267 "- **event_id**: the unique identifier for this event.\n",
268 "- **asof_date**: EventVestor's timestamp of event capture.\n",
269 "- **trade_date**: for event announcements made before trading ends, trade_date is the same as event_date. For announcements issued after market close, trade_date is next market open day.\n",
270 "- **symbol**: stock ticker symbol of the affected company.\n",
271 "- **event_type**: this should always be *Dividend*.\n",
272 "- **event_headline**: a brief description of the event\n",
273 "- **event_phase**: the inclusion of this field is likely an error on the part of the data vendor. We're currently attempting to resolve this.\n",
274 "- **div_type**: dividend type. Values include *no change, increase, decrease, initiation, defer, suspend, omission, stock, special*. \n",
275 "Note *QoQ* = quarter-on-quarter.\n",
276 "- **div_amount**: dividend payment amount in local currency\n",
277 "- **div_currency**: dividend payment currency code. Values include *$, BRL, CAD, CHF, EUR, GBP, JPY*.\n",
278 "- **div_ex_date**: ex-dividend date\n",
279 "- **div_record_date**: dividend payment record date\n",
280 "- **div_pay_date**: dividend payment date\n",
281 "- **event_rating**: this is always 1. The meaning of this is uncertain.\n",
282 "- **timestamp**: this is our timestamp on when we registered the data.\n",
283 "- **sid**: the equity's unique identifier. Use this instead of the symbol.\n",
284 "\n",
285 "We've done much of the data processing for you. Fields like `timestamp` and `sid` are standardized across all our Store Datasets, so the datasets are easy to combine. We have standardized the `sid` across all our equity databases.\n",
286 "\n",
287 "We can select columns and rows with ease. Below, we'll fetch all fifty-cent dividends."
288 ]
289 },
290 {
291 "cell_type": "code",
292 "execution_count": 7,
293 "metadata": {
294 "collapsed": false
295 },
296 "outputs": [
297 {
298 "data": {
299 "text/html": [
300 "<table border=\"1\" class=\"dataframe\">\n",
301 " <thead>\n",
302 " <tr style=\"text-align: right;\">\n",
303 " <th></th>\n",
304 " <th>event_id</th>\n",
305 " <th>asof_date</th>\n",
306 " <th>trade_date</th>\n",
307 " <th>symbol</th>\n",
308 " <th>event_type</th>\n",
309 " <th>event_headline</th>\n",
310 " <th>event_phase</th>\n",
311 " <th>div_type</th>\n",
312 " <th>div_amount</th>\n",
313 " <th>div_currency</th>\n",
314 " <th>div_ex_date</th>\n",
315 " <th>div_record_date</th>\n",
316 " <th>div_pay_date</th>\n",
317 " <th>event_rating</th>\n",
318 " <th>timestamp</th>\n",
319 " <th>sid</th>\n",
320 " </tr>\n",
321 " </thead>\n",
322 " <tbody>\n",
323 " <tr>\n",
324 " <th>0</th>\n",
325 " <td>132448</td>\n",
326 " <td>2007-01-18</td>\n",
327 " <td>2007-01-18</td>\n",
328 " <td>PPG</td>\n",
329 " <td>Dividend</td>\n",
330 " <td>PPG Industries Raises Quarterly Dividend 4.2%</td>\n",
331 " <td>NaN</td>\n",
332 " <td>Increase</td>\n",
333 " <td>0.5</td>\n",
334 " <td>$</td>\n",
335 " <td>2007-02-14</td>\n",
336 " <td>2007-02-16</td>\n",
337 " <td>2007-03-12</td>\n",
338 " <td>1</td>\n",
339 " <td>2007-01-19</td>\n",
340 " <td>6116</td>\n",
341 " </tr>\n",
342 " <tr>\n",
343 " <th>1</th>\n",
344 " <td>145007</td>\n",
345 " <td>2007-01-23</td>\n",
346 " <td>2007-01-23</td>\n",
347 " <td>CFFN</td>\n",
348 " <td>Dividend</td>\n",
349 " <td>Capitol Federal Declares Quarterly Dividend of...</td>\n",
350 " <td>NaN</td>\n",
351 " <td>No Change QoQ</td>\n",
352 " <td>0.5</td>\n",
353 " <td>$</td>\n",
354 " <td>2007-01-31</td>\n",
355 " <td>2007-02-02</td>\n",
356 " <td>2007-02-16</td>\n",
357 " <td>1</td>\n",
358 " <td>2007-01-24</td>\n",
359 " <td>19962</td>\n",
360 " </tr>\n",
361 " <tr>\n",
362 " <th>2</th>\n",
363 " <td>144819</td>\n",
364 " <td>2007-01-25</td>\n",
365 " <td>2007-01-25</td>\n",
366 " <td>IMB</td>\n",
367 " <td>Dividend</td>\n",
368 " <td>IndyMac Declares Quarterly Dividend of $0.50 p...</td>\n",
369 " <td>NaN</td>\n",
370 " <td>No Change QoQ</td>\n",
371 " <td>0.5</td>\n",
372 " <td>$</td>\n",
373 " <td>2007-02-06</td>\n",
374 " <td>2007-02-08</td>\n",
375 " <td>2007-03-08</td>\n",
376 " <td>1</td>\n",
377 " <td>2007-01-26</td>\n",
378 " <td>17256</td>\n",
379 " </tr>\n",
380 " <tr>\n",
381 " <th>3</th>\n",
382 " <td>132424</td>\n",
383 " <td>2007-02-21</td>\n",
384 " <td>2007-02-21</td>\n",
385 " <td>NUE</td>\n",
386 " <td>Dividend</td>\n",
387 " <td>Nucor Declares Supplemental Dividend of $0.50 ...</td>\n",
388 " <td>NaN</td>\n",
389 " <td>Special</td>\n",
390 " <td>0.5</td>\n",
391 " <td>$</td>\n",
392 " <td>2007-03-28</td>\n",
393 " <td>2007-03-30</td>\n",
394 " <td>2007-05-11</td>\n",
395 " <td>1</td>\n",
396 " <td>2007-02-22</td>\n",
397 " <td>5488</td>\n",
398 " </tr>\n",
399 " <tr>\n",
400 " <th>4</th>\n",
401 " <td>131771</td>\n",
402 " <td>2007-02-22</td>\n",
403 " <td>2007-02-22</td>\n",
404 " <td>HIG</td>\n",
405 " <td>Dividend</td>\n",
406 " <td>Hartford Declares Quarterly Dividend of $0.50 ...</td>\n",
407 " <td>NaN</td>\n",
408 " <td>No Change QoQ</td>\n",
409 " <td>0.5</td>\n",
410 " <td>$</td>\n",
411 " <td>2007-02-27</td>\n",
412 " <td>2007-03-01</td>\n",
413 " <td>2007-04-02</td>\n",
414 " <td>1</td>\n",
415 " <td>2007-02-23</td>\n",
416 " <td>14064</td>\n",
417 " </tr>\n",
418 " <tr>\n",
419 " <th>5</th>\n",
420 " <td>132961</td>\n",
421 " <td>2007-02-27</td>\n",
422 " <td>2007-02-27</td>\n",
423 " <td>PSA</td>\n",
424 " <td>Dividend</td>\n",
425 " <td>Public Storage Declares Dividend of $0.50 per ...</td>\n",
426 " <td>NaN</td>\n",
427 " <td>No Change QoQ</td>\n",
428 " <td>0.5</td>\n",
429 " <td>$</td>\n",
430 " <td>2007-03-13</td>\n",
431 " <td>2007-03-15</td>\n",
432 " <td>2007-03-29</td>\n",
433 " <td>1</td>\n",
434 " <td>2007-02-28</td>\n",
435 " <td>24962</td>\n",
436 " </tr>\n",
437 " <tr>\n",
438 " <th>6</th>\n",
439 " <td>524735</td>\n",
440 " <td>2007-03-01</td>\n",
441 " <td>2007-03-01</td>\n",
442 " <td>GLNG</td>\n",
443 " <td>Dividend</td>\n",
444 " <td>Golar LNG Declares Quarterly Dividend of $0.50...</td>\n",
445 " <td>NaN</td>\n",
446 " <td>No Change QoQ</td>\n",
447 " <td>0.5</td>\n",
448 " <td>$</td>\n",
449 " <td>2007-03-08</td>\n",
450 " <td>2007-03-12</td>\n",
451 " <td>2007-03-26</td>\n",
452 " <td>1</td>\n",
453 " <td>2007-03-02</td>\n",
454 " <td>24489</td>\n",
455 " </tr>\n",
456 " <tr>\n",
457 " <th>7</th>\n",
458 " <td>130886</td>\n",
459 " <td>2007-03-02</td>\n",
460 " <td>2007-03-02</td>\n",
461 " <td>FRE</td>\n",
462 " <td>Dividend</td>\n",
463 " <td>Freddie Mac Declares Quarterly Dividend of $0....</td>\n",
464 " <td>NaN</td>\n",
465 " <td>No Change QoQ</td>\n",
466 " <td>0.5</td>\n",
467 " <td>$</td>\n",
468 " <td>2007-03-08</td>\n",
469 " <td>2007-03-12</td>\n",
470 " <td>2007-03-30</td>\n",
471 " <td>1</td>\n",
472 " <td>2007-03-03</td>\n",
473 " <td>2988</td>\n",
474 " </tr>\n",
475 " <tr>\n",
476 " <th>8</th>\n",
477 " <td>1066749</td>\n",
478 " <td>2007-03-05</td>\n",
479 " <td>2007-03-05</td>\n",
480 " <td>EGP</td>\n",
481 " <td>Dividend</td>\n",
482 " <td>EastGroup Properties Increases Dividend by 2%</td>\n",
483 " <td>NaN</td>\n",
484 " <td>Increase</td>\n",
485 " <td>0.5</td>\n",
486 " <td>$</td>\n",
487 " <td>2007-03-16</td>\n",
488 " <td>2007-03-20</td>\n",
489 " <td>2007-03-30</td>\n",
490 " <td>1</td>\n",
491 " <td>2007-03-06</td>\n",
492 " <td>2471</td>\n",
493 " </tr>\n",
494 " <tr>\n",
495 " <th>9</th>\n",
496 " <td>1070046</td>\n",
497 " <td>2007-03-09</td>\n",
498 " <td>2007-03-09</td>\n",
499 " <td>NHI</td>\n",
500 " <td>Dividend</td>\n",
501 " <td>National Health Hikes Quarterly Dividend by 4.2%</td>\n",
502 " <td>NaN</td>\n",
503 " <td>Increase</td>\n",
504 " <td>0.5</td>\n",
505 " <td>$</td>\n",
506 " <td>2007-03-28</td>\n",
507 " <td>2007-03-30</td>\n",
508 " <td>2007-05-10</td>\n",
509 " <td>1</td>\n",
510 " <td>2007-03-10</td>\n",
511 " <td>5303</td>\n",
512 " </tr>\n",
513 " <tr>\n",
514 " <th>10</th>\n",
515 " <td>150309</td>\n",
516 " <td>2007-03-14</td>\n",
517 " <td>2007-03-14</td>\n",
518 " <td>AYR</td>\n",
519 " <td>Dividend</td>\n",
520 " <td>Aircastle Raises Quarterly Dividend to $0.50 p...</td>\n",
521 " <td>NaN</td>\n",
522 " <td>Increase</td>\n",
523 " <td>0.5</td>\n",
524 " <td>$</td>\n",
525 " <td>2007-03-28</td>\n",
526 " <td>2007-03-30</td>\n",
527 " <td>2007-04-13</td>\n",
528 " <td>1</td>\n",
529 " <td>2007-03-15</td>\n",
530 " <td>32475</td>\n",
531 " </tr>\n",
532 " </tbody>\n",
533 "</table>"
534 ],
535 "text/plain": [
536 " event_id asof_date trade_date symbol event_type \\\n",
537 "0 132448 2007-01-18 2007-01-18 PPG Dividend \n",
538 "1 145007 2007-01-23 2007-01-23 CFFN Dividend \n",
539 "2 144819 2007-01-25 2007-01-25 IMB Dividend \n",
540 "3 132424 2007-02-21 2007-02-21 NUE Dividend \n",
541 "4 131771 2007-02-22 2007-02-22 HIG Dividend \n",
542 "5 132961 2007-02-27 2007-02-27 PSA Dividend \n",
543 "6 524735 2007-03-01 2007-03-01 GLNG Dividend \n",
544 "7 130886 2007-03-02 2007-03-02 FRE Dividend \n",
545 "8 1066749 2007-03-05 2007-03-05 EGP Dividend \n",
546 "9 1070046 2007-03-09 2007-03-09 NHI Dividend \n",
547 "10 150309 2007-03-14 2007-03-14 AYR Dividend \n",
548 "\n",
549 " event_headline event_phase \\\n",
550 "0 PPG Industries Raises Quarterly Dividend 4.2% NaN \n",
551 "1 Capitol Federal Declares Quarterly Dividend of... NaN \n",
552 "2 IndyMac Declares Quarterly Dividend of $0.50 p... NaN \n",
553 "3 Nucor Declares Supplemental Dividend of $0.50 ... NaN \n",
554 "4 Hartford Declares Quarterly Dividend of $0.50 ... NaN \n",
555 "5 Public Storage Declares Dividend of $0.50 per ... NaN \n",
556 "6 Golar LNG Declares Quarterly Dividend of $0.50... NaN \n",
557 "7 Freddie Mac Declares Quarterly Dividend of $0.... NaN \n",
558 "8 EastGroup Properties Increases Dividend by 2% NaN \n",
559 "9 National Health Hikes Quarterly Dividend by 4.2% NaN \n",
560 "10 Aircastle Raises Quarterly Dividend to $0.50 p... NaN \n",
561 "\n",
562 " div_type div_amount div_currency div_ex_date div_record_date \\\n",
563 "0 Increase 0.5 $ 2007-02-14 2007-02-16 \n",
564 "1 No Change QoQ 0.5 $ 2007-01-31 2007-02-02 \n",
565 "2 No Change QoQ 0.5 $ 2007-02-06 2007-02-08 \n",
566 "3 Special 0.5 $ 2007-03-28 2007-03-30 \n",
567 "4 No Change QoQ 0.5 $ 2007-02-27 2007-03-01 \n",
568 "5 No Change QoQ 0.5 $ 2007-03-13 2007-03-15 \n",
569 "6 No Change QoQ 0.5 $ 2007-03-08 2007-03-12 \n",
570 "7 No Change QoQ 0.5 $ 2007-03-08 2007-03-12 \n",
571 "8 Increase 0.5 $ 2007-03-16 2007-03-20 \n",
572 "9 Increase 0.5 $ 2007-03-28 2007-03-30 \n",
573 "10 Increase 0.5 $ 2007-03-28 2007-03-30 \n",
574 "\n",
575 " div_pay_date event_rating timestamp sid \n",
576 "0 2007-03-12 1 2007-01-19 6116 \n",
577 "1 2007-02-16 1 2007-01-24 19962 \n",
578 "2 2007-03-08 1 2007-01-26 17256 \n",
579 "3 2007-05-11 1 2007-02-22 5488 \n",
580 "4 2007-04-02 1 2007-02-23 14064 \n",
581 "5 2007-03-29 1 2007-02-28 24962 \n",
582 "6 2007-03-26 1 2007-03-02 24489 \n",
583 "7 2007-03-30 1 2007-03-03 2988 \n",
584 "8 2007-03-30 1 2007-03-06 2471 \n",
585 "9 2007-05-10 1 2007-03-10 5303 \n",
586 "..."
587 ]
588 },
589 "execution_count": 7,
590 "metadata": {},
591 "output_type": "execute_result"
592 }
593 ],
594 "source": [
595 "fiftyc = dataset[(dataset.div_amount==0.5) & (dataset['div_currency']=='$')]\n",
596 "# When displaying a Blaze Data Object, the printout is automatically truncated to ten rows.\n",
597 "fiftyc.sort('timestamp')"
598 ]
599 },
600 {
601 "cell_type": "markdown",
602 "metadata": {},
603 "source": [
604 "We've done much of the data processing for you. Fields like `timestamp` and `sid` are standardized across all our Store Datasets, so the datasets are easy to combine. We have standardized the `sid` across all our equity databases.\n",
605 "\n",
606 "We can select columns and rows with ease. Below, we'll fetch all fifty-cent dividends."
607 ]
608 },
609 {
610 "cell_type": "code",
611 "execution_count": 8,
612 "metadata": {
613 "collapsed": false
614 },
615 "outputs": [
616 {
617 "data": {
618 "text/html": [
619 "<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
620 "<table border=\"1\" class=\"dataframe\">\n",
621 " <thead>\n",
622 " <tr style=\"text-align: right;\">\n",
623 " <th></th>\n",
624 " <th>sid</th>\n",
625 " <th>div_type</th>\n",
626 " <th>timestamp</th>\n",
627 " </tr>\n",
628 " </thead>\n",
629 " <tbody>\n",
630 " <tr>\n",
631 " <th>0</th>\n",
632 " <td>6116</td>\n",
633 " <td>Increase</td>\n",
634 " <td>2007-01-19 00:00:00</td>\n",
635 " </tr>\n",
636 " <tr>\n",
637 " <th>1</th>\n",
638 " <td>19962</td>\n",
639 " <td>No Change QoQ</td>\n",
640 " <td>2007-01-24 00:00:00</td>\n",
641 " </tr>\n",
642 " <tr>\n",
643 " <th>2</th>\n",
644 " <td>17256</td>\n",
645 " <td>No Change QoQ</td>\n",
646 " <td>2007-01-26 00:00:00</td>\n",
647 " </tr>\n",
648 " <tr>\n",
649 " <th>3</th>\n",
650 " <td>5488</td>\n",
651 " <td>Special</td>\n",
652 " <td>2007-02-22 00:00:00</td>\n",
653 " </tr>\n",
654 " <tr>\n",
655 " <th>4</th>\n",
656 " <td>14064</td>\n",
657 " <td>No Change QoQ</td>\n",
658 " <td>2007-02-23 00:00:00</td>\n",
659 " </tr>\n",
660 " <tr>\n",
661 " <th>5</th>\n",
662 " <td>24962</td>\n",
663 " <td>No Change QoQ</td>\n",
664 " <td>2007-02-28 00:00:00</td>\n",
665 " </tr>\n",
666 " <tr>\n",
667 " <th>6</th>\n",
668 " <td>24489</td>\n",
669 " <td>No Change QoQ</td>\n",
670 " <td>2007-03-02 00:00:00</td>\n",
671 " </tr>\n",
672 " <tr>\n",
673 " <th>7</th>\n",
674 " <td>2988</td>\n",
675 " <td>No Change QoQ</td>\n",
676 " <td>2007-03-03 00:00:00</td>\n",
677 " </tr>\n",
678 " <tr>\n",
679 " <th>8</th>\n",
680 " <td>2471</td>\n",
681 " <td>Increase</td>\n",
682 " <td>2007-03-06 00:00:00</td>\n",
683 " </tr>\n",
684 " <tr>\n",
685 " <th>9</th>\n",
686 " <td>5303</td>\n",
687 " <td>Increase</td>\n",
688 " <td>2007-03-10 00:00:00</td>\n",
689 " </tr>\n",
690 " <tr>\n",
691 " <th>10</th>\n",
692 " <td>32475</td>\n",
693 " <td>Increase</td>\n",
694 " <td>2007-03-15 00:00:00</td>\n",
695 " </tr>\n",
696 " <tr>\n",
697 " <th>11</th>\n",
698 " <td>17850</td>\n",
699 " <td>No Change QoQ</td>\n",
700 " <td>2007-03-23 00:00:00</td>\n",
701 " </tr>\n",
702 " <tr>\n",
703 " <th>12</th>\n",
704 " <td>27370</td>\n",
705 " <td>Decrease</td>\n",
706 " <td>2007-04-19 00:00:00</td>\n",
707 " </tr>\n",
708 " <tr>\n",
709 " <th>13</th>\n",
710 " <td>6116</td>\n",
711 " <td>No Change QoQ</td>\n",
712 " <td>2007-04-20 00:00:00</td>\n",
713 " </tr>\n",
714 " <tr>\n",
715 " <th>14</th>\n",
716 " <td>19962</td>\n",
717 " <td>No Change QoQ</td>\n",
718 " <td>2007-04-26 00:00:00</td>\n",
719 " </tr>\n",
720 " <tr>\n",
721 " <th>15</th>\n",
722 " <td>17256</td>\n",
723 " <td>No Change QoQ</td>\n",
724 " <td>2007-04-27 00:00:00</td>\n",
725 " </tr>\n",
726 " <tr>\n",
727 " <th>16</th>\n",
728 " <td>27577</td>\n",
729 " <td>Increase</td>\n",
730 " <td>2007-04-27 00:00:00</td>\n",
731 " </tr>\n",
732 " <tr>\n",
733 " <th>17</th>\n",
734 " <td>22792</td>\n",
735 " <td>Decrease</td>\n",
736 " <td>2007-05-02 00:00:00</td>\n",
737 " </tr>\n",
738 " <tr>\n",
739 " <th>18</th>\n",
740 " <td>24962</td>\n",
741 " <td>No Change QoQ</td>\n",
742 " <td>2007-05-04 00:00:00</td>\n",
743 " </tr>\n",
744 " <tr>\n",
745 " <th>19</th>\n",
746 " <td>5219</td>\n",
747 " <td>Increase</td>\n",
748 " <td>2007-05-10 00:00:00</td>\n",
749 " </tr>\n",
750 " <tr>\n",
751 " <th>20</th>\n",
752 " <td>14064</td>\n",
753 " <td>No Change QoQ</td>\n",
754 " <td>2007-05-18 00:00:00</td>\n",
755 " </tr>\n",
756 " <tr>\n",
757 " <th>21</th>\n",
758 " <td>24489</td>\n",
759 " <td>No Change QoQ</td>\n",
760 " <td>2007-05-25 00:00:00</td>\n",
761 " </tr>\n",
762 " <tr>\n",
763 " <th>22</th>\n",
764 " <td>2471</td>\n",
765 " <td>No Change QoQ</td>\n",
766 " <td>2007-05-31 00:00:00</td>\n",
767 " </tr>\n",
768 " <tr>\n",
769 " <th>23</th>\n",
770 " <td>5488</td>\n",
771 " <td>Special</td>\n",
772 " <td>2007-06-06 00:00:00</td>\n",
773 " </tr>\n",
774 " <tr>\n",
775 " <th>24</th>\n",
776 " <td>2988</td>\n",
777 " <td>No Change QoQ</td>\n",
778 " <td>2007-06-09 00:00:00</td>\n",
779 " </tr>\n",
780 " <tr>\n",
781 " <th>25</th>\n",
782 " <td>5303</td>\n",
783 " <td>No Change QoQ</td>\n",
784 " <td>2007-06-12 00:00:00</td>\n",
785 " </tr>\n",
786 " <tr>\n",
787 " <th>26</th>\n",
788 " <td>27830</td>\n",
789 " <td>Increase</td>\n",
790 " <td>2007-06-13 00:00:00</td>\n",
791 " </tr>\n",
792 " <tr>\n",
793 " <th>27</th>\n",
794 " <td>17850</td>\n",
795 " <td>No Change QoQ</td>\n",
796 " <td>2007-07-18 00:00:00</td>\n",
797 " </tr>\n",
798 " <tr>\n",
799 " <th>28</th>\n",
800 " <td>14064</td>\n",
801 " <td>No Change QoQ</td>\n",
802 " <td>2007-07-20 00:00:00</td>\n",
803 " </tr>\n",
804 " <tr>\n",
805 " <th>29</th>\n",
806 " <td>11044</td>\n",
807 " <td>Increase</td>\n",
808 " <td>2007-07-24 00:00:00</td>\n",
809 " </tr>\n",
810 " <tr>\n",
811 " <th>...</th>\n",
812 " <td>...</td>\n",
813 " <td>...</td>\n",
814 " <td>...</td>\n",
815 " </tr>\n",
816 " <tr>\n",
817 " <th>499</th>\n",
818 " <td>7242</td>\n",
819 " <td>No Change QoQ</td>\n",
820 " <td>2014-02-19 00:00:00</td>\n",
821 " </tr>\n",
822 " <tr>\n",
823 " <th>500</th>\n",
824 " <td>3620</td>\n",
825 " <td>Special</td>\n",
826 " <td>2014-02-20 00:00:00</td>\n",
827 " </tr>\n",
828 " <tr>\n",
829 " <th>501</th>\n",
830 " <td>33317</td>\n",
831 " <td>Special</td>\n",
832 " <td>2014-02-21 00:00:00</td>\n",
833 " </tr>\n",
834 " <tr>\n",
835 " <th>502</th>\n",
836 " <td>27819</td>\n",
837 " <td>Special</td>\n",
838 " <td>2014-02-27 00:00:00</td>\n",
839 " </tr>\n",
840 " <tr>\n",
841 " <th>503</th>\n",
842 " <td>1274</td>\n",
843 " <td>Increase</td>\n",
844 " <td>2014-02-28 00:00:00</td>\n",
845 " </tr>\n",
846 " <tr>\n",
847 " <th>504</th>\n",
848 " <td>11472</td>\n",
849 " <td>No Change QoQ</td>\n",
850 " <td>2014-03-01 00:00:00</td>\n",
851 " </tr>\n",
852 " <tr>\n",
853 " <th>505</th>\n",
854 " <td>7657</td>\n",
855 " <td>Special</td>\n",
856 " <td>2014-03-07 00:00:00</td>\n",
857 " </tr>\n",
858 " <tr>\n",
859 " <th>506</th>\n",
860 " <td>32367</td>\n",
861 " <td>No Change QoQ</td>\n",
862 " <td>2014-03-07 00:00:00</td>\n",
863 " </tr>\n",
864 " <tr>\n",
865 " <th>507</th>\n",
866 " <td>9540</td>\n",
867 " <td>Decrease</td>\n",
868 " <td>2014-03-14 00:00:00</td>\n",
869 " </tr>\n",
870 " <tr>\n",
871 " <th>508</th>\n",
872 " <td>17448</td>\n",
873 " <td>No Change QoQ</td>\n",
874 " <td>2014-03-14 00:00:00</td>\n",
875 " </tr>\n",
876 " <tr>\n",
877 " <th>509</th>\n",
878 " <td>36111</td>\n",
879 " <td>No Change QoQ</td>\n",
880 " <td>2014-03-19 00:00:00</td>\n",
881 " </tr>\n",
882 " <tr>\n",
883 " <th>510</th>\n",
884 " <td>38531</td>\n",
885 " <td>No Change QoQ</td>\n",
886 " <td>2014-03-19 00:00:00</td>\n",
887 " </tr>\n",
888 " <tr>\n",
889 " <th>511</th>\n",
890 " <td>45578</td>\n",
891 " <td>Increase</td>\n",
892 " <td>2014-03-19 00:00:00</td>\n",
893 " </tr>\n",
894 " <tr>\n",
895 " <th>512</th>\n",
896 " <td>13508</td>\n",
897 " <td>No Change QoQ</td>\n",
898 " <td>2014-04-15 00:00:00</td>\n",
899 " </tr>\n",
900 " <tr>\n",
901 " <th>513</th>\n",
902 " <td>7242</td>\n",
903 " <td>No Change QoQ</td>\n",
904 " <td>2014-04-16 00:00:00</td>\n",
905 " </tr>\n",
906 " <tr>\n",
907 " <th>514</th>\n",
908 " <td>45397</td>\n",
909 " <td>No Change QoQ</td>\n",
910 " <td>2014-04-18 00:00:00</td>\n",
911 " </tr>\n",
912 " <tr>\n",
913 " <th>515</th>\n",
914 " <td>3714</td>\n",
915 " <td>No Change QoQ</td>\n",
916 " <td>2014-04-19 00:00:00</td>\n",
917 " </tr>\n",
918 " <tr>\n",
919 " <th>516</th>\n",
920 " <td>5621</td>\n",
921 " <td>Increase</td>\n",
922 " <td>2014-04-19 00:00:00</td>\n",
923 " </tr>\n",
924 " <tr>\n",
925 " <th>517</th>\n",
926 " <td>43982</td>\n",
927 " <td>Increase</td>\n",
928 " <td>2014-04-22 00:00:00</td>\n",
929 " </tr>\n",
930 " <tr>\n",
931 " <th>518</th>\n",
932 " <td>161</td>\n",
933 " <td>No Change QoQ</td>\n",
934 " <td>2014-04-23 00:00:00</td>\n",
935 " </tr>\n",
936 " <tr>\n",
937 " <th>519</th>\n",
938 " <td>43450</td>\n",
939 " <td>Increase</td>\n",
940 " <td>2014-04-25 00:00:00</td>\n",
941 " </tr>\n",
942 " <tr>\n",
943 " <th>520</th>\n",
944 " <td>6190</td>\n",
945 " <td>No Change QoQ</td>\n",
946 " <td>2014-04-29 00:00:00</td>\n",
947 " </tr>\n",
948 " <tr>\n",
949 " <th>521</th>\n",
950 " <td>26882</td>\n",
951 " <td>No Change QoQ</td>\n",
952 " <td>2014-05-01 00:00:00</td>\n",
953 " </tr>\n",
954 " <tr>\n",
955 " <th>522</th>\n",
956 " <td>23906</td>\n",
957 " <td>No Change QoQ</td>\n",
958 " <td>2014-05-07 00:00:00</td>\n",
959 " </tr>\n",
960 " <tr>\n",
961 " <th>523</th>\n",
962 " <td>42788</td>\n",
963 " <td>Increase</td>\n",
964 " <td>2014-05-08 00:00:00</td>\n",
965 " </tr>\n",
966 " <tr>\n",
967 " <th>524</th>\n",
968 " <td>3620</td>\n",
969 " <td>Special</td>\n",
970 " <td>2014-05-15 00:00:00</td>\n",
971 " </tr>\n",
972 " <tr>\n",
973 " <th>525</th>\n",
974 " <td>5651</td>\n",
975 " <td>Increase</td>\n",
976 " <td>2014-05-22 00:00:00</td>\n",
977 " </tr>\n",
978 " <tr>\n",
979 " <th>526</th>\n",
980 " <td>553</td>\n",
981 " <td>No Change QoQ</td>\n",
982 " <td>2014-05-23 00:00:00</td>\n",
983 " </tr>\n",
984 " <tr>\n",
985 " <th>527</th>\n",
986 " <td>11472</td>\n",
987 " <td>No Change QoQ</td>\n",
988 " <td>2014-05-23 00:00:00</td>\n",
989 " </tr>\n",
990 " <tr>\n",
991 " <th>528</th>\n",
992 " <td>8580</td>\n",
993 " <td>Increase</td>\n",
994 " <td>2016-02-17 23:30:42.139389</td>\n",
995 " </tr>\n",
996 " </tbody>\n",
997 "</table>\n",
998 "<p>529 rows × 3 columns</p>\n",
999 "</div>"
1000 ],
1001 "text/plain": [
1002 " sid div_type timestamp\n",
1003 "0 6116 Increase 2007-01-19 00:00:00\n",
1004 "1 19962 No Change QoQ 2007-01-24 00:00:00\n",
1005 "2 17256 No Change QoQ 2007-01-26 00:00:00\n",
1006 "3 5488 Special 2007-02-22 00:00:00\n",
1007 "4 14064 No Change QoQ 2007-02-23 00:00:00\n",
1008 "5 24962 No Change QoQ 2007-02-28 00:00:00\n",
1009 "6 24489 No Change QoQ 2007-03-02 00:00:00\n",
1010 "7 2988 No Change QoQ 2007-03-03 00:00:00\n",
1011 "8 2471 Increase 2007-03-06 00:00:00\n",
1012 "9 5303 Increase 2007-03-10 00:00:00\n",
1013 "10 32475 Increase 2007-03-15 00:00:00\n",
1014 "11 17850 No Change QoQ 2007-03-23 00:00:00\n",
1015 "12 27370 Decrease 2007-04-19 00:00:00\n",
1016 "13 6116 No Change QoQ 2007-04-20 00:00:00\n",
1017 "14 19962 No Change QoQ 2007-04-26 00:00:00\n",
1018 "15 17256 No Change QoQ 2007-04-27 00:00:00\n",
1019 "16 27577 Increase 2007-04-27 00:00:00\n",
1020 "17 22792 Decrease 2007-05-02 00:00:00\n",
1021 "18 24962 No Change QoQ 2007-05-04 00:00:00\n",
1022 "19 5219 Increase 2007-05-10 00:00:00\n",
1023 "20 14064 No Change QoQ 2007-05-18 00:00:00\n",
1024 "21 24489 No Change QoQ 2007-05-25 00:00:00\n",
1025 "22 2471 No Change QoQ 2007-05-31 00:00:00\n",
1026 "23 5488 Special 2007-06-06 00:00:00\n",
1027 "24 2988 No Change QoQ 2007-06-09 00:00:00\n",
1028 "25 5303 No Change QoQ 2007-06-12 00:00:00\n",
1029 "26 27830 Increase 2007-06-13 00:00:00\n",
1030 "27 17850 No Change QoQ 2007-07-18 00:00:00\n",
1031 "28 14064 No Change QoQ 2007-07-20 00:00:00\n",
1032 "29 11044 Increase 2007-07-24 00:00:00\n",
1033 ".. ... ... ...\n",
1034 "499 7242 No Change QoQ 2014-02-19 00:00:00\n",
1035 "500 3620 Special 2014-02-20 00:00:00\n",
1036 "501 33317 Special 2014-02-21 00:00:00\n",
1037 "502 27819 Special 2014-02-27 00:00:00\n",
1038 "503 1274 Increase 2014-02-28 00:00:00\n",
1039 "504 11472 No Change QoQ 2014-03-01 00:00:00\n",
1040 "505 7657 Special 2014-03-07 00:00:00\n",
1041 "506 32367 No Change QoQ 2014-03-07 00:00:00\n",
1042 "507 9540 Decrease 2014-03-14 00:00:00\n",
1043 "508 17448 No Change QoQ 2014-03-14 00:00:00\n",
1044 "509 36111 No Change QoQ 2014-03-19 00:00:00\n",
1045 "510 38531 No Change QoQ 2014-03-19 00:00:00\n",
1046 "511 45578 Increase 2014-03-19 00:00:00\n",
1047 "512 13508 No Change QoQ 2014-04-15 00:00:00\n",
1048 "513 7242 No Change QoQ 2014-04-16 00:00:00\n",
1049 "514 45397 No Change QoQ 2014-04-18 00:00:00\n",
1050 "515 3714 No Change QoQ 2014-04-19 00:00:00\n",
1051 "516 5621 Increase 2014-04-19 00:00:00\n",
1052 "517 43982 Increase 2014-04-22 00:00:00\n",
1053 "518 161 No Change QoQ 2014-04-23 00:00:00\n",
1054 "519 43450 Increase 2014-04-25 00:00:00\n",
1055 "520 6190 No Change QoQ 2014-04-29 00:00:00\n",
1056 "521 26882 No Change QoQ 2014-05-01 00:00:00\n",
1057 "522 23906 No Change QoQ 2014-05-07 00:00:00\n",
1058 "523 42788 Increase 2014-05-08 00:00:00\n",
1059 "524 3620 Special 2014-05-15 00:00:00\n",
1060 "525 5651 Increase 2014-05-22 00:00:00\n",
1061 "526 553 No Change QoQ 2014-05-23 00:00:00\n",
1062 "527 11472 No Change QoQ 2014-05-23 00:00:00\n",
1063 "528 8580 Increase 2016-02-17 23:30:42.139389\n",
1064 "\n",
1065 "[529 rows x 3 columns]"
1066 ]
1067 },
1068 "execution_count": 8,
1069 "metadata": {},
1070 "output_type": "execute_result"
1071 }
1072 ],
1073 "source": [
1074 "fifty_df = odo(fiftyc, pd.DataFrame)\n",
1075 "reduced = fifty_df[['sid','div_type','timestamp']]\n",
1076 "# When printed: pandas DataFrames display the head(30) and tail(30) rows, and truncate the middle.\n",
1077 "reduced"
1078 ]
1079 },
1080 {
1081 "cell_type": "markdown",
1082 "metadata": {},
1083 "source": [
1084 "Finally, suppose we want a DataFrame of that data, but we only want the sid, timestamp, and div_type:"
1085 ]
1086 },
1087 {
1088 "cell_type": "code",
1089 "execution_count": 9,
1090 "metadata": {
1091 "collapsed": false
1092 },
1093 "outputs": [
1094 {
1095 "data": {
1096 "text/html": [
1097 "<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
1098 "<table border=\"1\" class=\"dataframe\">\n",
1099 " <thead>\n",
1100 " <tr style=\"text-align: right;\">\n",
1101 " <th></th>\n",
1102 " <th>sid</th>\n",
1103 " <th>div_type</th>\n",
1104 " <th>timestamp</th>\n",
1105 " </tr>\n",
1106 " </thead>\n",
1107 " <tbody>\n",
1108 " <tr>\n",
1109 " <th>0</th>\n",
1110 " <td>6116</td>\n",
1111 " <td>Increase</td>\n",
1112 " <td>2007-01-19 00:00:00</td>\n",
1113 " </tr>\n",
1114 " <tr>\n",
1115 " <th>1</th>\n",
1116 " <td>19962</td>\n",
1117 " <td>No Change QoQ</td>\n",
1118 " <td>2007-01-24 00:00:00</td>\n",
1119 " </tr>\n",
1120 " <tr>\n",
1121 " <th>2</th>\n",
1122 " <td>17256</td>\n",
1123 " <td>No Change QoQ</td>\n",
1124 " <td>2007-01-26 00:00:00</td>\n",
1125 " </tr>\n",
1126 " <tr>\n",
1127 " <th>3</th>\n",
1128 " <td>5488</td>\n",
1129 " <td>Special</td>\n",
1130 " <td>2007-02-22 00:00:00</td>\n",
1131 " </tr>\n",
1132 " <tr>\n",
1133 " <th>4</th>\n",
1134 " <td>14064</td>\n",
1135 " <td>No Change QoQ</td>\n",
1136 " <td>2007-02-23 00:00:00</td>\n",
1137 " </tr>\n",
1138 " <tr>\n",
1139 " <th>5</th>\n",
1140 " <td>24962</td>\n",
1141 " <td>No Change QoQ</td>\n",
1142 " <td>2007-02-28 00:00:00</td>\n",
1143 " </tr>\n",
1144 " <tr>\n",
1145 " <th>6</th>\n",
1146 " <td>24489</td>\n",
1147 " <td>No Change QoQ</td>\n",
1148 " <td>2007-03-02 00:00:00</td>\n",
1149 " </tr>\n",
1150 " <tr>\n",
1151 " <th>7</th>\n",
1152 " <td>2988</td>\n",
1153 " <td>No Change QoQ</td>\n",
1154 " <td>2007-03-03 00:00:00</td>\n",
1155 " </tr>\n",
1156 " <tr>\n",
1157 " <th>8</th>\n",
1158 " <td>2471</td>\n",
1159 " <td>Increase</td>\n",
1160 " <td>2007-03-06 00:00:00</td>\n",
1161 " </tr>\n",
1162 " <tr>\n",
1163 " <th>9</th>\n",
1164 " <td>5303</td>\n",
1165 " <td>Increase</td>\n",
1166 " <td>2007-03-10 00:00:00</td>\n",
1167 " </tr>\n",
1168 " <tr>\n",
1169 " <th>10</th>\n",
1170 " <td>32475</td>\n",
1171 " <td>Increase</td>\n",
1172 " <td>2007-03-15 00:00:00</td>\n",
1173 " </tr>\n",
1174 " <tr>\n",
1175 " <th>11</th>\n",
1176 " <td>17850</td>\n",
1177 " <td>No Change QoQ</td>\n",
1178 " <td>2007-03-23 00:00:00</td>\n",
1179 " </tr>\n",
1180 " <tr>\n",
1181 " <th>12</th>\n",
1182 " <td>27370</td>\n",
1183 " <td>Decrease</td>\n",
1184 " <td>2007-04-19 00:00:00</td>\n",
1185 " </tr>\n",
1186 " <tr>\n",
1187 " <th>13</th>\n",
1188 " <td>6116</td>\n",
1189 " <td>No Change QoQ</td>\n",
1190 " <td>2007-04-20 00:00:00</td>\n",
1191 " </tr>\n",
1192 " <tr>\n",
1193 " <th>14</th>\n",
1194 " <td>19962</td>\n",
1195 " <td>No Change QoQ</td>\n",
1196 " <td>2007-04-26 00:00:00</td>\n",
1197 " </tr>\n",
1198 " <tr>\n",
1199 " <th>15</th>\n",
1200 " <td>17256</td>\n",
1201 " <td>No Change QoQ</td>\n",
1202 " <td>2007-04-27 00:00:00</td>\n",
1203 " </tr>\n",
1204 " <tr>\n",
1205 " <th>16</th>\n",
1206 " <td>27577</td>\n",
1207 " <td>Increase</td>\n",
1208 " <td>2007-04-27 00:00:00</td>\n",
1209 " </tr>\n",
1210 " <tr>\n",
1211 " <th>17</th>\n",
1212 " <td>22792</td>\n",
1213 " <td>Decrease</td>\n",
1214 " <td>2007-05-02 00:00:00</td>\n",
1215 " </tr>\n",
1216 " <tr>\n",
1217 " <th>18</th>\n",
1218 " <td>24962</td>\n",
1219 " <td>No Change QoQ</td>\n",
1220 " <td>2007-05-04 00:00:00</td>\n",
1221 " </tr>\n",
1222 " <tr>\n",
1223 " <th>19</th>\n",
1224 " <td>5219</td>\n",
1225 " <td>Increase</td>\n",
1226 " <td>2007-05-10 00:00:00</td>\n",
1227 " </tr>\n",
1228 " <tr>\n",
1229 " <th>20</th>\n",
1230 " <td>14064</td>\n",
1231 " <td>No Change QoQ</td>\n",
1232 " <td>2007-05-18 00:00:00</td>\n",
1233 " </tr>\n",
1234 " <tr>\n",
1235 " <th>21</th>\n",
1236 " <td>24489</td>\n",
1237 " <td>No Change QoQ</td>\n",
1238 " <td>2007-05-25 00:00:00</td>\n",
1239 " </tr>\n",
1240 " <tr>\n",
1241 " <th>22</th>\n",
1242 " <td>2471</td>\n",
1243 " <td>No Change QoQ</td>\n",
1244 " <td>2007-05-31 00:00:00</td>\n",
1245 " </tr>\n",
1246 " <tr>\n",
1247 " <th>23</th>\n",
1248 " <td>5488</td>\n",
1249 " <td>Special</td>\n",
1250 " <td>2007-06-06 00:00:00</td>\n",
1251 " </tr>\n",
1252 " <tr>\n",
1253 " <th>24</th>\n",
1254 " <td>2988</td>\n",
1255 " <td>No Change QoQ</td>\n",
1256 " <td>2007-06-09 00:00:00</td>\n",
1257 " </tr>\n",
1258 " <tr>\n",
1259 " <th>25</th>\n",
1260 " <td>5303</td>\n",
1261 " <td>No Change QoQ</td>\n",
1262 " <td>2007-06-12 00:00:00</td>\n",
1263 " </tr>\n",
1264 " <tr>\n",
1265 " <th>26</th>\n",
1266 " <td>27830</td>\n",
1267 " <td>Increase</td>\n",
1268 " <td>2007-06-13 00:00:00</td>\n",
1269 " </tr>\n",
1270 " <tr>\n",
1271 " <th>27</th>\n",
1272 " <td>17850</td>\n",
1273 " <td>No Change QoQ</td>\n",
1274 " <td>2007-07-18 00:00:00</td>\n",
1275 " </tr>\n",
1276 " <tr>\n",
1277 " <th>28</th>\n",
1278 " <td>14064</td>\n",
1279 " <td>No Change QoQ</td>\n",
1280 " <td>2007-07-20 00:00:00</td>\n",
1281 " </tr>\n",
1282 " <tr>\n",
1283 " <th>29</th>\n",
1284 " <td>11044</td>\n",
1285 " <td>Increase</td>\n",
1286 " <td>2007-07-24 00:00:00</td>\n",
1287 " </tr>\n",
1288 " <tr>\n",
1289 " <th>...</th>\n",
1290 " <td>...</td>\n",
1291 " <td>...</td>\n",
1292 " <td>...</td>\n",
1293 " </tr>\n",
1294 " <tr>\n",
1295 " <th>499</th>\n",
1296 " <td>7242</td>\n",
1297 " <td>No Change QoQ</td>\n",
1298 " <td>2014-02-19 00:00:00</td>\n",
1299 " </tr>\n",
1300 " <tr>\n",
1301 " <th>500</th>\n",
1302 " <td>3620</td>\n",
1303 " <td>Special</td>\n",
1304 " <td>2014-02-20 00:00:00</td>\n",
1305 " </tr>\n",
1306 " <tr>\n",
1307 " <th>501</th>\n",
1308 " <td>33317</td>\n",
1309 " <td>Special</td>\n",
1310 " <td>2014-02-21 00:00:00</td>\n",
1311 " </tr>\n",
1312 " <tr>\n",
1313 " <th>502</th>\n",
1314 " <td>27819</td>\n",
1315 " <td>Special</td>\n",
1316 " <td>2014-02-27 00:00:00</td>\n",
1317 " </tr>\n",
1318 " <tr>\n",
1319 " <th>503</th>\n",
1320 " <td>1274</td>\n",
1321 " <td>Increase</td>\n",
1322 " <td>2014-02-28 00:00:00</td>\n",
1323 " </tr>\n",
1324 " <tr>\n",
1325 " <th>504</th>\n",
1326 " <td>11472</td>\n",
1327 " <td>No Change QoQ</td>\n",
1328 " <td>2014-03-01 00:00:00</td>\n",
1329 " </tr>\n",
1330 " <tr>\n",
1331 " <th>505</th>\n",
1332 " <td>7657</td>\n",
1333 " <td>Special</td>\n",
1334 " <td>2014-03-07 00:00:00</td>\n",
1335 " </tr>\n",
1336 " <tr>\n",
1337 " <th>506</th>\n",
1338 " <td>32367</td>\n",
1339 " <td>No Change QoQ</td>\n",
1340 " <td>2014-03-07 00:00:00</td>\n",
1341 " </tr>\n",
1342 " <tr>\n",
1343 " <th>507</th>\n",
1344 " <td>9540</td>\n",
1345 " <td>Decrease</td>\n",
1346 " <td>2014-03-14 00:00:00</td>\n",
1347 " </tr>\n",
1348 " <tr>\n",
1349 " <th>508</th>\n",
1350 " <td>17448</td>\n",
1351 " <td>No Change QoQ</td>\n",
1352 " <td>2014-03-14 00:00:00</td>\n",
1353 " </tr>\n",
1354 " <tr>\n",
1355 " <th>509</th>\n",
1356 " <td>36111</td>\n",
1357 " <td>No Change QoQ</td>\n",
1358 " <td>2014-03-19 00:00:00</td>\n",
1359 " </tr>\n",
1360 " <tr>\n",
1361 " <th>510</th>\n",
1362 " <td>38531</td>\n",
1363 " <td>No Change QoQ</td>\n",
1364 " <td>2014-03-19 00:00:00</td>\n",
1365 " </tr>\n",
1366 " <tr>\n",
1367 " <th>511</th>\n",
1368 " <td>45578</td>\n",
1369 " <td>Increase</td>\n",
1370 " <td>2014-03-19 00:00:00</td>\n",
1371 " </tr>\n",
1372 " <tr>\n",
1373 " <th>512</th>\n",
1374 " <td>13508</td>\n",
1375 " <td>No Change QoQ</td>\n",
1376 " <td>2014-04-15 00:00:00</td>\n",
1377 " </tr>\n",
1378 " <tr>\n",
1379 " <th>513</th>\n",
1380 " <td>7242</td>\n",
1381 " <td>No Change QoQ</td>\n",
1382 " <td>2014-04-16 00:00:00</td>\n",
1383 " </tr>\n",
1384 " <tr>\n",
1385 " <th>514</th>\n",
1386 " <td>45397</td>\n",
1387 " <td>No Change QoQ</td>\n",
1388 " <td>2014-04-18 00:00:00</td>\n",
1389 " </tr>\n",
1390 " <tr>\n",
1391 " <th>515</th>\n",
1392 " <td>3714</td>\n",
1393 " <td>No Change QoQ</td>\n",
1394 " <td>2014-04-19 00:00:00</td>\n",
1395 " </tr>\n",
1396 " <tr>\n",
1397 " <th>516</th>\n",
1398 " <td>5621</td>\n",
1399 " <td>Increase</td>\n",
1400 " <td>2014-04-19 00:00:00</td>\n",
1401 " </tr>\n",
1402 " <tr>\n",
1403 " <th>517</th>\n",
1404 " <td>43982</td>\n",
1405 " <td>Increase</td>\n",
1406 " <td>2014-04-22 00:00:00</td>\n",
1407 " </tr>\n",
1408 " <tr>\n",
1409 " <th>518</th>\n",
1410 " <td>161</td>\n",
1411 " <td>No Change QoQ</td>\n",
1412 " <td>2014-04-23 00:00:00</td>\n",
1413 " </tr>\n",
1414 " <tr>\n",
1415 " <th>519</th>\n",
1416 " <td>43450</td>\n",
1417 " <td>Increase</td>\n",
1418 " <td>2014-04-25 00:00:00</td>\n",
1419 " </tr>\n",
1420 " <tr>\n",
1421 " <th>520</th>\n",
1422 " <td>6190</td>\n",
1423 " <td>No Change QoQ</td>\n",
1424 " <td>2014-04-29 00:00:00</td>\n",
1425 " </tr>\n",
1426 " <tr>\n",
1427 " <th>521</th>\n",
1428 " <td>26882</td>\n",
1429 " <td>No Change QoQ</td>\n",
1430 " <td>2014-05-01 00:00:00</td>\n",
1431 " </tr>\n",
1432 " <tr>\n",
1433 " <th>522</th>\n",
1434 " <td>23906</td>\n",
1435 " <td>No Change QoQ</td>\n",
1436 " <td>2014-05-07 00:00:00</td>\n",
1437 " </tr>\n",
1438 " <tr>\n",
1439 " <th>523</th>\n",
1440 " <td>42788</td>\n",
1441 " <td>Increase</td>\n",
1442 " <td>2014-05-08 00:00:00</td>\n",
1443 " </tr>\n",
1444 " <tr>\n",
1445 " <th>524</th>\n",
1446 " <td>3620</td>\n",
1447 " <td>Special</td>\n",
1448 " <td>2014-05-15 00:00:00</td>\n",
1449 " </tr>\n",
1450 " <tr>\n",
1451 " <th>525</th>\n",
1452 " <td>5651</td>\n",
1453 " <td>Increase</td>\n",
1454 " <td>2014-05-22 00:00:00</td>\n",
1455 " </tr>\n",
1456 " <tr>\n",
1457 " <th>526</th>\n",
1458 " <td>553</td>\n",
1459 " <td>No Change QoQ</td>\n",
1460 " <td>2014-05-23 00:00:00</td>\n",
1461 " </tr>\n",
1462 " <tr>\n",
1463 " <th>527</th>\n",
1464 " <td>11472</td>\n",
1465 " <td>No Change QoQ</td>\n",
1466 " <td>2014-05-23 00:00:00</td>\n",
1467 " </tr>\n",
1468 " <tr>\n",
1469 " <th>528</th>\n",
1470 " <td>8580</td>\n",
1471 " <td>Increase</td>\n",
1472 " <td>2016-02-17 23:30:42.139389</td>\n",
1473 " </tr>\n",
1474 " </tbody>\n",
1475 "</table>\n",
1476 "<p>529 rows × 3 columns</p>\n",
1477 "</div>"
1478 ],
1479 "text/plain": [
1480 " sid div_type timestamp\n",
1481 "0 6116 Increase 2007-01-19 00:00:00\n",
1482 "1 19962 No Change QoQ 2007-01-24 00:00:00\n",
1483 "2 17256 No Change QoQ 2007-01-26 00:00:00\n",
1484 "3 5488 Special 2007-02-22 00:00:00\n",
1485 "4 14064 No Change QoQ 2007-02-23 00:00:00\n",
1486 "5 24962 No Change QoQ 2007-02-28 00:00:00\n",
1487 "6 24489 No Change QoQ 2007-03-02 00:00:00\n",
1488 "7 2988 No Change QoQ 2007-03-03 00:00:00\n",
1489 "8 2471 Increase 2007-03-06 00:00:00\n",
1490 "9 5303 Increase 2007-03-10 00:00:00\n",
1491 "10 32475 Increase 2007-03-15 00:00:00\n",
1492 "11 17850 No Change QoQ 2007-03-23 00:00:00\n",
1493 "12 27370 Decrease 2007-04-19 00:00:00\n",
1494 "13 6116 No Change QoQ 2007-04-20 00:00:00\n",
1495 "14 19962 No Change QoQ 2007-04-26 00:00:00\n",
1496 "15 17256 No Change QoQ 2007-04-27 00:00:00\n",
1497 "16 27577 Increase 2007-04-27 00:00:00\n",
1498 "17 22792 Decrease 2007-05-02 00:00:00\n",
1499 "18 24962 No Change QoQ 2007-05-04 00:00:00\n",
1500 "19 5219 Increase 2007-05-10 00:00:00\n",
1501 "20 14064 No Change QoQ 2007-05-18 00:00:00\n",
1502 "21 24489 No Change QoQ 2007-05-25 00:00:00\n",
1503 "22 2471 No Change QoQ 2007-05-31 00:00:00\n",
1504 "23 5488 Special 2007-06-06 00:00:00\n",
1505 "24 2988 No Change QoQ 2007-06-09 00:00:00\n",
1506 "25 5303 No Change QoQ 2007-06-12 00:00:00\n",
1507 "26 27830 Increase 2007-06-13 00:00:00\n",
1508 "27 17850 No Change QoQ 2007-07-18 00:00:00\n",
1509 "28 14064 No Change QoQ 2007-07-20 00:00:00\n",
1510 "29 11044 Increase 2007-07-24 00:00:00\n",
1511 ".. ... ... ...\n",
1512 "499 7242 No Change QoQ 2014-02-19 00:00:00\n",
1513 "500 3620 Special 2014-02-20 00:00:00\n",
1514 "501 33317 Special 2014-02-21 00:00:00\n",
1515 "502 27819 Special 2014-02-27 00:00:00\n",
1516 "503 1274 Increase 2014-02-28 00:00:00\n",
1517 "504 11472 No Change QoQ 2014-03-01 00:00:00\n",
1518 "505 7657 Special 2014-03-07 00:00:00\n",
1519 "506 32367 No Change QoQ 2014-03-07 00:00:00\n",
1520 "507 9540 Decrease 2014-03-14 00:00:00\n",
1521 "508 17448 No Change QoQ 2014-03-14 00:00:00\n",
1522 "509 36111 No Change QoQ 2014-03-19 00:00:00\n",
1523 "510 38531 No Change QoQ 2014-03-19 00:00:00\n",
1524 "511 45578 Increase 2014-03-19 00:00:00\n",
1525 "512 13508 No Change QoQ 2014-04-15 00:00:00\n",
1526 "513 7242 No Change QoQ 2014-04-16 00:00:00\n",
1527 "514 45397 No Change QoQ 2014-04-18 00:00:00\n",
1528 "515 3714 No Change QoQ 2014-04-19 00:00:00\n",
1529 "516 5621 Increase 2014-04-19 00:00:00\n",
1530 "517 43982 Increase 2014-04-22 00:00:00\n",
1531 "518 161 No Change QoQ 2014-04-23 00:00:00\n",
1532 "519 43450 Increase 2014-04-25 00:00:00\n",
1533 "520 6190 No Change QoQ 2014-04-29 00:00:00\n",
1534 "521 26882 No Change QoQ 2014-05-01 00:00:00\n",
1535 "522 23906 No Change QoQ 2014-05-07 00:00:00\n",
1536 "523 42788 Increase 2014-05-08 00:00:00\n",
1537 "524 3620 Special 2014-05-15 00:00:00\n",
1538 "525 5651 Increase 2014-05-22 00:00:00\n",
1539 "526 553 No Change QoQ 2014-05-23 00:00:00\n",
1540 "527 11472 No Change QoQ 2014-05-23 00:00:00\n",
1541 "528 8580 Increase 2016-02-17 23:30:42.139389\n",
1542 "\n",
1543 "[529 rows x 3 columns]"
1544 ]
1545 },
1546 "execution_count": 9,
1547 "metadata": {},
1548 "output_type": "execute_result"
1549 }
1550 ],
1551 "source": [
1552 "fifty_df = odo(fiftyc, pd.DataFrame)\n",
1553 "reduced = fifty_df[['sid','div_type','timestamp']]\n",
1554 "# When printed: pandas DataFrames display the head(30) and tail(30) rows, and truncate the middle.\n",
1555 "reduced"
1556 ]
1557 },
1558 {
1559 "cell_type": "markdown",
1560 "metadata": {},
1561 "source": [
1562 "<a id='pipeline'></a>\n",
1563 "\n",
1564 "#Pipeline Overview\n",
1565 "\n",
1566 "### Accessing the data in your algorithms & research\n",
1567 "The only method for accessing partner data within algorithms running on Quantopian is via the pipeline API. Different data sets work differently but in the case of this data, you can add this data to your pipeline as follows:\n",
1568 "\n",
1569 "Import the data set here\n",
1570 "> `from quantopian.pipeline.data.eventvestor import (`\n",
1571 "> `DividendsByExDate,`\n",
1572 "> `DividendsByPayDate,`\n",
1573 "> `DividendsByAnnouncement`\n",
1574 "> `)`\n",
1575 "\n",
1576 "Then in intialize() you could do something simple like adding the raw value of one of the fields to your pipeline:\n",
1577 "> `pipe.add(DividendsByExDate.next_date.latest, 'next_dividends')`"
1578 ]
1579 },
1580 {
1581 "cell_type": "code",
1582 "execution_count": 1,
1583 "metadata": {
1584 "collapsed": true
1585 },
1586 "outputs": [],
1587 "source": [
1588 "# Import necessary Pipeline modules\n",
1589 "from quantopian.pipeline import Pipeline\n",
1590 "from quantopian.research import run_pipeline\n",
1591 "from quantopian.pipeline.factors import AverageDollarVolume"
1592 ]
1593 },
1594 {
1595 "cell_type": "code",
1596 "execution_count": 1,
1597 "metadata": {
1598 "collapsed": false
1599 },
1600 "outputs": [],
1601 "source": [
1602 "# Import the datasets available\n",
1603 "from quantopian.pipeline.data.eventvestor import (\n",
1604 " DividendsByExDate,\n",
1605 " DividendsByPayDate,\n",
1606 " DividendsByAnnouncementDate,\n",
1607 ")\n",
1608 "\n",
1609 "from quantopian.pipeline.factors.eventvestor import (\n",
1610 " BusinessDaysSincePreviousExDate,\n",
1611 " BusinessDaysUntilNextExDate,\n",
1612 " BusinessDaysSincePreviousPayDate,\n",
1613 " BusinessDaysUntilNextPayDate,\n",
1614 " BusinessDaysSinceDividendAnnouncement,\n",
1615 ")\n"
1616 ]
1617 },
1618 {
1619 "cell_type": "markdown",
1620 "metadata": {},
1621 "source": [
1622 "Now that we've imported the data, let's take a look at which fields are available for each dataset.\n",
1623 "\n",
1624 "You'll find the dataset, the available fields, and the datatypes for each of those fields."
1625 ]
1626 },
1627 {
1628 "cell_type": "code",
1629 "execution_count": 29,
1630 "metadata": {
1631 "collapsed": false
1632 },
1633 "outputs": [
1634 {
1635 "name": "stdout",
1636 "output_type": "stream",
1637 "text": [
1638 "Here are the list of available fields per dataset:\n",
1639 "---------------------------------------------------\n",
1640 "\n",
1641 "Dataset: DividendsByExDate\n",
1642 "\n",
1643 "Fields:\n",
1644 "previous_date - datetime64[ns]\n",
1645 "next_currency - object\n",
1646 "previous_type - object\n",
1647 "next_date - datetime64[ns]\n",
1648 "previous_currency - object\n",
1649 "next_amount - float64\n",
1650 "previous_amount - float64\n",
1651 "next_type - object\n",
1652 "\n",
1653 "\n",
1654 "Dataset: DividendsByPayDate\n",
1655 "\n",
1656 "Fields:\n",
1657 "previous_amount - float64\n",
1658 "previous_type - object\n",
1659 "next_currency - object\n",
1660 "previous_date - datetime64[ns]\n",
1661 "next_date - datetime64[ns]\n",
1662 "next_amount - float64\n",
1663 "previous_currency - object\n",
1664 "next_type - object\n",
1665 "\n",
1666 "\n",
1667 "Dataset: DividendsByAnnouncementDate\n",
1668 "\n",
1669 "Fields:\n",
1670 "previous_amount - float64\n",
1671 "previous_currency - object\n",
1672 "previous_type - object\n",
1673 "previous_announcement_date - datetime64[ns]\n",
1674 "\n",
1675 "\n",
1676 "---------------------------------------------------\n",
1677 "\n"
1678 ]
1679 }
1680 ],
1681 "source": [
1682 "print \"Here are the list of available fields per dataset:\"\n",
1683 "print \"---------------------------------------------------\\n\"\n",
1684 "\n",
1685 "def _print_fields(dataset):\n",
1686 " print \"Dataset: %s\\n\" % dataset.__name__\n",
1687 " print \"Fields:\"\n",
1688 " for field in list(dataset.columns):\n",
1689 " print \"%s - %s\" % (field.name, field.dtype)\n",
1690 " print \"\\n\"\n",
1691 "\n",
1692 "for data in (DividendsByExDate, DividendsByPayDate, DividendsByAnnouncementDate):\n",
1693 " _print_fields(data)\n",
1694 "\n",
1695 "\n",
1696 "print \"---------------------------------------------------\\n\""
1697 ]
1698 },
1699 {
1700 "cell_type": "markdown",
1701 "metadata": {},
1702 "source": [
1703 "Now that we know what fields we have access to, let's see what this data looks like when we run it through Pipeline.\n",
1704 "\n",
1705 "\n",
1706 "This is constructed the same way as you would in the backtester. For more information on using Pipeline in Research view this thread:\n",
1707 "https://www.quantopian.com/posts/pipeline-in-research-build-test-and-visualize-your-factors-and-filters"
1708 ]
1709 },
1710 {
1711 "cell_type": "code",
1712 "execution_count": 37,
1713 "metadata": {
1714 "collapsed": false
1715 },
1716 "outputs": [],
1717 "source": [
1718 "# Let's see what this data looks like when we run it through Pipeline\n",
1719 "# This is constructed the same way as you would in the backtester. For more information\n",
1720 "# on using Pipeline in Research view this thread:\n",
1721 "# https://www.quantopian.com/posts/pipeline-in-research-build-test-and-visualize-your-factors-and-filters\n",
1722 "pipe = Pipeline()\n",
1723 " \n",
1724 "pipe.add(DividendsByExDate.next_date.latest, 'next_ex_date')\n",
1725 "pipe.add(DividendsByExDate.previous_date.latest, 'prev_ex_date')\n",
1726 "pipe.add(DividendsByExDate.next_amount.latest, 'next_amount')\n",
1727 "pipe.add(DividendsByExDate.previous_amount.latest, 'prev_amount')\n",
1728 "pipe.add(DividendsByExDate.next_currency.latest, 'next_currency')\n",
1729 "pipe.add(DividendsByExDate.previous_currency.latest, 'prev_currency')\n",
1730 "pipe.add(DividendsByExDate.next_type.latest, 'next_type')\n",
1731 "pipe.add(DividendsByExDate.previous_type.latest, 'prev_type')"
1732 ]
1733 },
1734 {
1735 "cell_type": "code",
1736 "execution_count": 39,
1737 "metadata": {
1738 "collapsed": false
1739 },
1740 "outputs": [],
1741 "source": [
1742 "# Setting some basic liquidity strings (just for good habit)\n",
1743 "dollar_volume = AverageDollarVolume(window_length=20)\n",
1744 "top_1000_most_liquid = dollar_volume.rank(ascending=False) < 1000\n",
1745 "\n",
1746 "pipe.set_screen(top_1000_most_liquid & DividendsByExDate.previous_amount.latest.notnan())"
1747 ]
1748 },
1749 {
1750 "cell_type": "code",
1751 "execution_count": 40,
1752 "metadata": {
1753 "collapsed": false
1754 },
1755 "outputs": [
1756 {
1757 "data": {
1758 "image/png": "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\nfbFW9PBjb8Qb/55drNUBFE2njh1izMgtoqamXWLrkKEA5WHPXfrHBuv1Smz5b838JKY8+mpiywcg\nvSQzXr4DrZkxMkDlkd0ArZeMB6AcbLrRarHrjhsntnzXI4C2J+n3On4/EyqHex9AkpLOmMaKVsy3\n14FXxtKly4q1OoCi6ta1JkaNGJzY8mUoQHkYO+pLccukcYkt/9SfPhC3/n5qYssHIL0kM16+A62Z\nMTJA5ZHdAK2XjAegHLRvXx2175+X2PJdjwDanqTf6/j9TKgc7n0ASUo6YxorWjHf0qXL4paTfxAH\n7jSsWKsEKIoOI0Yl/kZOhgKU3thzL4iln89PdB2fL1sWB+y4Q/zulImJrgeAppLOePkOtFbGyACV\nR3YDtF4yHoBycMdjj8e48y5MdB2uRwBtSzHe6/j9TKgM7n0ASSpGxjRWXbQ1AQAAAAAAAAAAAAAA\nAEAbpZgPAAAAAAAAAAAAAAAAABKmmA8AAAAAAAAAAAAAAAAAEqaYDwAAAAAAAAAAAAAAAAASppgP\nAAAAAAAAAAAAAAAAABKmmA8AAAAAAAAAAAAAAAAAEqaYDwAAAAAAAAAAAAAAAAASppgPAAAAAAAA\nAAAAAAAAABKmmA8AAAAAAAAAAAAAAAAAEqaYDwAAAAAAAAAAAAAAAAASppgPAAAAAAAAAAAAAAAA\nABKmmA8AAAAAAAAAAAAAAAAAEqaYDwAAAAAAAAAAAAAAAAAS1r7UDUinw4hRKad379w51u69auyw\n2cD45l57xDb9+xW5Zak1bm/t5LtL2JL825Ju30dE9OjaJTZea6341t57xeHDd4+qqqq825iJQm5H\nufYhyus8qnSV1v/L6djL0JWvo1z7ELRllXa+yvzCrSMVmQ+tR6Wdm/K9cOtIRb5D5iqt78vPwq0j\nFfkJlaPSzj35Xbh1pCK/KQfldJ5Xsko7N8vpuMv3la+jXPsQUJ4qLUtcjwq3jlRcj4B8pcuEFfMl\n1Xz180x76+047/a74unX34h3Z38UXTt1jM3XXz++utWXY9/ttol+6/RtcX3plPraUUgr2/Ze3brF\nDpsNiDMPHhNf2nijIraq8pXTWKM1kAnFIxNKT34UVtkW89Uf3PoDXjv57qirq4tP5i+I5//1Zlw2\n+Y8x7AenxBF77hG//fZR0bFDhyav3+WkH0ZExKO/+HnObchmGbWT7846HJOSb1tS7fuIiM+WLInp\n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\nEBussXo8OePVuPnkH+SwhelddO/kaFddHcvq6uKgc86PJ355XnTt1CmnZaXqQ2PPvSAeev6FOGPc\nQfHdfb7ecFHtMGJU1stPsg8Ucp2F3KctybbvVvrxKGcyVIbK0MKss5gZukbPnvGf2R/FrE8+afKX\nu9KpqqqKurq6qF36eXRo3y4iIuYuWNjCq/JtY3LHLdvtL9Z5VQlkvsxva5n/0bx50bt794bvZ3+6\n/GHIaj1SP3QsVLvyPXdW79Ej/vvxx836a337V+/Ro8n82eR8Ift2pnLp65kcO+P6L8h3+d7W8j2p\ndRZzTJ8J+Zk8+Sk/5Wdh1lnM/Czk/s1UkuPzcrV06fK/GvzS3yfGoAFr5LSM0UfeGHUfFbJVX5Df\n8rut5bf7G80V+v6G55blQb7Ld/ku3wud756plt8z1aWfL4vN+q8R0x+fmPeyknrP4XrkeuR65HpU\n6OuR+1mtW7++fePp116P6W/PbPgEoBVNf3tmbNq3aQF6zT77xzs3Xh1r9OzZbP4dBy3/RNRPF+Z/\nDNJle32hSCrF6g/l+vtc2Y6hCiGX45RKIdqeTX5kmpfFvvexdOmyOPOk4XHWSXvmvIxcx5oyIXcy\n4QuFyoSIzMdc2Y4d0mlt76uLobrUDcjH2bfeEU+8PCMOH7572o90T+XEA5YPhC+46944/87fx0kH\nZj4wHv7l5R8X+fDUaU2m/3PGaynn/7/tt42IiL9Om97sZ3+f/nIM+8EpGa8737Z0GDEq/jN7+dWl\nuqoqdhy0Wdxy8vIbJDPe+U9W6370xZciYvlHcK7o6K/tFV06dow/PvNcfP+Kq+Ibew6PzjU1WS1/\nxXY3dsNDD8ddf/9HvHj5RbHZeuvGyzPfiWMuvjynZafrQ0+8PCMiIo4f+X8Nb6AW19amXU59pXbt\n0s9j4eLFscbY8Q0/S7IPpJPtOrPZpyvb1kxl23cr/XiUKxkqQ2VoauWeoSN32D4iIu598qlmP3ty\nxqux/fEnNZm2Zq/lb/Iafxz31DffzHq92UjyuGW7/RGFP68qkcyX+W0x8+vbVu8v//trnsO/tEVW\ny8mlXfmcO1/fdquIaN5f69v/9W22bjI9m5wvZN+ul8m1Ldu+nsmxM65fTr7L97aY75ko9zF9psuR\nn8mRn/JTfqZW7vmZ7f4thCTH57ko1HWoUslv+d0W89v9jeYKfX/Dc8vSk+/yXb7L94jC57tnqp6p\nZsv1yPXI9cj1KKLw1yP3s1r3/awR2yzf19c99HDaea6d8pfYe+stm0yrqyGUCWsAACAASURBVKuL\n+1JcoyMinn3jXxER8aVNNsqpTY1zLl22r3juN1ao/pDEc7BiyGUMla9cjlMqhWh7NvmRaV62pXsf\nMiE9mZC5QmVCvUzGXNmOHdJpbe+ri6Giivnq6upizoIF8ZepL8b+Pzs3zrzpd3HkXsPjku9MyGo5\n+w/bPjZaa83413vvxefLlsXXtvpyxq/90bgx0bNr1/jhdTfGIy9Mi/mLFsU/XpkR591xV8r5zzx4\nTGyy9lpx7GWT4q7H/xEfzZsX8z77LO5/6pk44pe/jXOOODSrtufTloiICRddEi/PfCcW19bGrDlz\n4vw7fx8REXt+ueU3YMvq6uK/H38cNz78aBx3+ZXRuaYmfnbYwc3mW7V7tzh0912jrq4upjw3Nb49\n4ms5b+OKHnvp5Tj1uhvjD2eeFuv26RO3nXpidO3UKW559G8Nf9lmZTLtQ/WV7OfdfnfMWbAgPp43\nP06//ua0yx284foREfH0a6/H5Keeie0HDmj4WbZ9oMOIUXn/5ZVs1pntPl3ZtmYq275byuPRmsjQ\n/NoSIUNlaJlk6MEHxaD114uzbvpdXP3gn2PWnDkxf9GimPLc1DjilxfFzw8/pMn8e2yxfHB/4V33\nxNwFC+PV/7wb1075S9brzUai526W2x+R7HlVrmR+fm2JkPmtIfMn/fHBePzlV2L+okXxyAvT4vTr\nb4pe3brFj8Yd1OL2N5ZL38zn3Dnz4DGx/uqrNfTXeZ991tD+9VdfLX50cNP2Z5vz+fTtVDK5tmXb\n1zM5dm11XC/f82tLhHxvDfmeiXIf02e6HPlZOPIzv7ZEyE/5WR75me3+LYSkx+fZKtR1qFLI7/za\nEiG/W0N+u7+RWiHvb3huWXzyPb+2RMh3+f4F+Z6eZ6qeqbbE9Si/tkS4HrkefcH1KD33s1r3/azv\n7TsiBq63btzw0MPxvcsmxfS3Z8bi2tpYXFsbL731dnznkivimdffiGP3HdHstSdedV38+p4/xNuz\nPojFtbXx/idz4nePPhaHXfDr6FxTE+ccnn/RY6psf/zlV+LKP01J+5pC9YcknoMVQy5jqLzXmcNx\nSpXvhWh7tvmRSV62pXsfMiE9mZDFOguUCfUyGXNle+6n09reVxdDVV3955TnYt59EUtezWxFfU6M\nW07+QRy407CM5k/Xobp26hR9+/SOYZsNjKO+Ojy27rdpi6+tnXx3s3km/fHB+M4lV8T1E78f43bZ\nOatlvDzznTj5muvjsZdejqqI2H7ggLjwqCNiyDHHpZz/k/nz4+xb74x7/vHPePej2bFqt+6xdb9N\n45TR+8e2A/q1uM5CteWJl2fE1Q/+Of760vT470cfRZeOHWP91VePA3caFsfuO6Kh6nllb+C6dOwY\n66zWJ3befFB8f799ov86fVPO98Z/34tBE74bB+40LG466YRmP8/2lwpqJ9/d5DWjhm0fpx10QGx1\nbPOPT0233+pl0oc+mDM3Tr7mupjy3NSYM39BbNp37fjhmANj3HlffEx64+Pw7Ov/iqMvuiTe+O97\nMXjD9ePa449t8jG4mfaBxu1uvPxc+kYm68x2n2ayrZnKpu+W8nhkosOIUXHbVYfE6P2GZv3aTMlQ\nGdqYDJWh8xctivPv/H3c+fcn4q33Z0X3zp3jy5tsHKeNOSB2HNT0I9pnf/ppnDDp6njo+Rdi4eIl\nseuQwXHRMUfFRocf3eI+WbH9mc4Tkey5m83212vpvMrE2HMviKre8+P2q5Mb4I8+8sao+6hb/O6U\niRm/RubL/BW3uS1nfuPpb1x9eRx3xVXxt2nTY1ldXey0+WZx/pGHx4B112k2b6r90lgu48d8zp1Z\nc+bEj2++Ne7/5zPxwdy5sXqPHrH3NlvFWYeMiTV69mzyumxyPtO+nY1Mr22Z5HA2xy6isOP6pDNe\nvsv3Fcl3Y3r5mblsM1R+ys8Vt1l+tryNlZKf2ezfbLe9FOPzXNpSiP3YUnZPnzErNt/xgnjp7xNj\n0IA1slp2PeNf+b0i+e3+Rrnf32gtzy2Nz+W7fG9Kvst3z1RL80z1jscej3HnXRh1s89vMv2sX0yJ\nO+59MaY/nvn7hHRcj1yPGnM9cj0q5+uR+1nFuZ9VCNn+fma9TxcujIvunRyTn3o6Xn/3vViwaFF0\n6dgxNl57zfj61lvF8SP3jR5duzR5zbS33o67H/9H/G3a9Jjxn//Ex/PmR7vq6linT5/YefCgOGHk\n/7V4Hq5MumyvrqqKnQcPit9M+GZscuS3ms0bUZj+EFG452Dptj1VDq3sNS2N1XIZQxXynE11nH55\n1Dei/1HHRHVVVSy+r2lxfbp8z7ftEZnnRzZ5Wcx7H4OGXRAH7jskzjppz6yW21gu97fryYTU65UJ\n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\nlxCQGURRUanirKiACI4oTogD4giC4NBWqzi1ztraOg9fa6ttHeqrtdVaFXydqHVAap0HxKmib621\nKlocEAQEkYTk+wOMhARMkJMAue/r8jJn7b3XevY+D3vtJOfJolF65L6RqSgvz/vvvJU3XnmhocNZ\nZo0eP7FKAdro8RNz3wvv5cb7n8kPzrggMz6bmtOO2C+/vvD0lM6Z863GqUv70jR6/MTssf+hSZKD\njxxRrZAvSZq3bDVvv4GDc8SJZ9cpruW9gO8rD99zW849fmj2G/q9JMmJg/fI80+MyXd/+JP84cEX\n8ocHX8gRJ5ydcU88kuMH7ZZXnn+yWh9j/zIq544YmnU33CQ3jH4qN4x+KutssHF+evxhefSvd1XZ\nd8CQ7+bcEUPy0N1/rpfzAyg0xXwAAAAAAAAAAAAAADQ6FRUVeWT0yGy9w65JkjH33dHAES1fioqK\n0qZt+3Tfpk9+fMUNOfyEMzPmnttz9cVnNXRoS2yP/QYlSf52//+mvHxujfvM/mJWnv7bA9l134Pr\nM7RlwvinHs1vLzozx59zWbbtu2dl+xmXXpPu2/RJq9Zt0qp1m2zTt19O+ukvUjpnTm781YVV+pgy\n+eNcd9lPssmWPXP0aeenbfsOadu+Q44+7fxstHmPXHvpj/PZlMmV+2+3S/8ce9bFufriszL+Katn\nAss/xXwAAAAAAAAAAAAAADQ6r457Km3arpzvn/qzJMmTD/8ls7+Y1cBRLb8OOeqEbN5z24z9y6i8\nNv7Zhg5niWzarVfW/E6XTPnko7z07BM17vPU2PuzWffe6bDqavUcXcMqKy3Nby8+K5tsuXX69BtQ\n2T56/MSss/7G1fbfrNvWSZIP3n27SvuYe27P7C9mZY+Bg1NUVFTZXlRUlD0GDs4Xsz7PmHtvr3JM\n370OyEab98jVl5ydsrKypXlaAPVOMR8AAAAAAAAAAAAAAI3OmHvvyO77Dcpa66yXTbv1yhezPs9T\nj9zf0GEt1/Y6aHiS5OF7bmvgSJbcbgMOSZKMHT2yxu2PzM+bxubpsX/N5I/+m7577V+r/adNnZIk\n6bLRZlXaX35+XpHkRpv3qHbMxvPbXnrm8Wrbdu6/fz758IM8PfavdYobYFlT0tABAAAAAAAAAAAA\nAABAfZr5+Yy88NTf8oMzL0yS7DFwcN54ZVzG3Ht7ZTFXkgzo2bnKcf0PGpbjz7k0STL5o0k5au/e\n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\nG2+et//5Wsb+ZVRatmqTVVZbo9qqd+1XWTWffvxhbnv0tbRuW311EphLgwAAIABJREFUsbq67Mxj\n8/JzT2TIMT/KgCHfTZu27ZMkA3pWj71t+5Xz2ZTJmf7ZlHSYvxpbkkz/bEqNfS/tWJPkr6NuSZLs\necDQyrZ2HVbJlE8+WmRc7TqsusTj1eX61NXu+w3KA3fekkfv/98cePixGf/033PcWZdU2WdpnVtR\nUVEqKipSVlaWkpJ5ZR4zP5/xrc9hcer6/q/ScY188O6/M/Pz6Wm/0HnNnDE95504PP0PPKxaId+A\nnp2rrJ7YvXefvDb+2bz52ktVVjlMkjcnvJwk1VbNTJLPp0+bF8dqa9TuBAGWUcXfvAsAAAAAAAAA\nAAAAACz/nn98TDp32aDGQr4k2W3AISkubpLnHnu42spuBx85Ikly183X5X//eE0OPur4asdv23fP\nJMk/xj9TbduEl57PaUfsV6d433hl3kp3Bww/prJQrXTOnBr37bHdzkmSV55/smofL79Q4/5LO9Y7\nbvh13nhlXPYYODibLbAyX++d9qgxrpeff6LK9iVRl+tTVxt17Z7O622YKZM/zpXnnZqe2/etVvS2\ntM5t5VU6JkmmTv6osu3tf762xLHXRl3f//U3mfeHDT6e9H6V9tI5c3LRKd9Nn377LXZFvq/sMXBw\nmrdomUfuG1lt2yP3jUzzlq2y+36Dq237ZP6462282TeOAbAsU8wHAAAAAAAAAAAAAECj8Mh9I7P7\ngEGL3L7Kamtkq+12TllpaR79611Vtu2w+97ptPY6mTTxnZTPnZutd9i12vGHHXtq1vxOl1x32Y/z\n1CP3Z8a0qfli1ucZ98Qj+dXPfpgjTzqnTvF27dE7STLq91dn5ozpmTH9s9x89WU17jv0B6ekVZu2\n+cNvLs2r457K7Fkz8/rL4/LAXX+qcf9vG2tFRUVmzpiel597Ihed+r386dqfZ88DhmbE2ZdWG2e1\nTmtXxvXFrM/z6rincvNvLstqndbO0B+cUqdrsqC6XJ8l8VWujHvikRoLzJbWuXXfdt5KdHfdfF1m\nfj4j77/zVsbcc/tSO4+a1PX9/6ow8a3XX63SfsW5J+W1F5/Ln679eQb07Fztv4V16Lh6jj3zorzx\nygv5n1+cl+mfTcn0z6bk+p//LP/36viMOOviyuLGBb054ZUkyTY79VtalwCgQRRVVFRUNHQQsLQV\nFRXljjvuyKBBi37QBgAAAFjYVz9LGDmy+l8ApHEaOXJkBg8enMb4Y1T/HqD2/HthRTFhwoRsvvnm\nee2119K1a9eGDmeF4/dXAAA0Vuedd15GjRqVCRMmNHQoS8T3SgDLtkGDBmXS1C9y5uXX1mr/BQuL\nuvXeMRdde9ti9/nK6PETK79+4M5bcs2l5+TUi36dvnsdUOM4n0+fljtuvCrPPPpgPv1oUlq3bZ+N\nNu+RQd89IRtvsVWtx0qSaVMm58YrL8qLzzyWmTOmZa3vrJdDjz45l581osZj3vv3m/n9VRdlwovP\npaioOJv33DZHn3Zejhm4Y4qKi3PfuHeXWqxJ0rxFy6yyWqds1qNX+h94WDbq2r3G/T6bMjm3XndF\nnn98TKZN+TTtOqyS3n12z2HHnZb2HVZd5Dhfndui2utyfWpzvRc29dNPcmT/XunQcfX8/i/PpKi4\n+npK3/bcklQWs7383BP5cvYX2bLXDjnurIty1N7b1Ppa1LU9qf37nyRlpaU5euAOWa3T2rn8xq8L\nXReVG4sa8ysvPft4Rv7+N3nrjX8kSTbcdMsM+t6J6b5Nnxr7OO3Igfn040n5n3ufSknTpt845oIG\n9Ozs57PAsmKUYj5WSH4ZCgAAACwJxRgsTDGffw9QG/69sKLwAdXC8vsrAAAaK8V8ABRSXYv5Gqsp\nn3yUI/pvnXYdVs2fxrzU0OGwHBv35Nhc+MOjcvolV6dPvwH1Nu7fH7g7vzz35Jx75U3pteNudT5e\nMR+wDBlVvSwcAAAAAAAAAAAAAABY7gzo2TmTJr5Tpe21F59Lkmy59XYNEBErkl477pYR51yaqy85\nK8/+/aF6GfOZRx/MtZeekxFnX7JEhXwAyxrFfAAAAAAAAAAAAAAAsIK49rIfZ9L772b2F7PyyvNP\n5g+/viQtW7XO0B+c0tChsQLof+BhueDqW3Pvn2+ol/Huu+3GXHjtbel/0LB6GQ+g0EoaOgAAAAAA\nAAAAAAAAAODbu+ja2/LXO2/JGUftnxnTPkvrtu2yxdbb57BjT8na627Q0OGxgtioa/dcev2oehmr\nvsYBqC+K+QAAAAAAAAAAAAAAYAXQrfeO6dZ7x4YOAwBYhOKGDgAAAAAAAAAAAAAAAAAAVnSK+QAA\nAAAAAAAAAAAAAACgwBTzAQAAAAAAAAAAAAAAAECBKeYDAAAAAAAAAAAAAAAAgAJTzAcAAAAAAAAA\nAAAAAAAABaaYDwAAAAAAAAAAAAAAAAAKTDEfAAAAAAAAAAAAAAAAABSYYj4AAAAAAAAAAAAAAAAA\nKDDFfAAAAAAAAAAAAAAAAABQYIr5AAAAAAAAAAAAAAAAAKDAFPMBAAAAAAAAAAAAAAAAQIEp5gMA\nAAAAAAAAAAAAAACAAlPMBwAAAAAAAAAAAAAAAAAFVtLQAQAAAAAAAAAAAAAAwJL48IN38+BdtzZ0\nGAAAtaKYDwAAAAAAAAAAAACA5U7nzp0zatSovHXxWQ0dCrAMa9KkSdZaa62GDgMgiWI+AAAAAAAA\nAAAAAACWQ1dccUWuuOKKhg4DAKDWihs6AAAAAAAAAAAAAAAAAABY0SnmAwAAAAAAAAAAAAAAAIAC\nU8wHAAAAAAAAAAAAAAAAAAWmmA8AAAAAAAAAAAAAAAAACkwxHwAAAAAAAAAAAAAAAAAUmGI+AAAA\nAAAAAAAAAAAAACgwxXwAAAAAAAAAAAAAAAAAUGCK+QAAAAAAAAAAAAAAAACgwBTzAQAAAAAAAAAA\nAAAAAECBKeYDAAAAAAAAAAAAAAAAgAJTzAcAAAAAAAAAAAAAAAAABaaYDwAAAAAAAAAAAAAAAAAK\nTDEfAAAAAAAAAAAAAAAAABSYYj4AAAAAAAAAAAAAAAAAKDDFfAAAAAAAAAAAAAAAAABQYIr5AAAA\nAAAAAAAAAAAAAKDAFPMBAAAAAAAAAAAAAAAAQIEp5gMAAAAAAAAAAAAAAACAAlPMBwAAAAAAAAAA\nAAAAAAAFppgPAAAAAAAAAAAAAAAAAApMMR8AAAAAAAAAAAAAAAAAFJhiPgAAAAAAAAAAAAAAAAAo\nMMV8AAAAAAAAAAAAAAAAAFBgivkAAAAAAAAAAAAAAAAAoMAU8wEAAAAAAAAAAAAAAABAgSnmAwAA\nAAAAAAAAAAAAAIACU8wHAAAAAAAAAAAAAAAAAAWmmA8AAAAAAAAAAAAAAAAACkwxHwAAAAAAAAAA\nAAAAAAAUmGI+AAAAAAAAAAAAAAAAACgwxXwAAAAAAAAAAAAAAAAAUGAlDR0AAAAAAMCyYurUqZk6\ndWrl648++ihJ8vbbb1fZb+21106zZs3qNTYAAAAAAAAAAJZvivkAAAAAaJRefPHF9O/fP1988UVl\n25w5c5Ikbdq0qWxr0aJFHnzwwWy11Vb1HiP1b4MNNsiUKVOqta+//vpVXo8YMSJXX311fYUFLENe\nf/31HHHEEZk9e3Zl26RJk5IkW2yxRWVb8+bNc/PNN2fTTTet9xihtvbee+888MAD1do333zzavvd\nf//99RXWCuGWW27JjTfeWKWtpKQkF1xwQa655prKtg022CA33HBDfYcHAAAsxqGHHlrle6CKioo0\nadIk22yzTYqKiirb99lnn9x+++0NESIAAADLMcV8AAAAADRK7dq1y+TJk1NRUVFt21dFfUkyc+bM\ntGvXrj5DowH17t07Y8aMydy5cxe5T1FRUXr37l2PUQHLkqKiorzwwgs1bvv000+r7QvLsnXXXTfF\nxcUpLy9f5D7FxcVZd9116y+oFcSbb76Zxx57rFr7hAkTqrx+//336yskAACgllq1apVZs2ZV+15p\n5syZlV8XFxendevW9R0aAAAAK4Dihg4AAAAAABrC+uuvn169eqW4eNE/IisuLk7v3r2rrcrGiuuI\nI46oscBzQSuttFIOPvjgeooIWNZsuumm6dat22IL9YqKitK9e/dssskm9RgZ1N2wYcMWW8iXJOXl\n5Rk2bFg9RbTiqM01a9q0aY466qh6iAYAAKiL4cOH1+p7peHDh9dTRAAAAKxIrMwHAAAAjVHZB8m0\nO5Is/pfRsKIbfuCaGT9+0duLiubtk09/UX9B0aD227E0zZo1yezZNd8fm5Y0yYB+G6XV7GuT2fUc\nXH2b8895/5f/UM3hB30nZ772j5TNrbn4t7i4KIcf1Nm/H5Z5221UkbU6tcsHk6Ytcp+1OrXLths+\nmXz6VD1GtvzbeNVki8065bU3JmVRfyegrKw0Q/b63L0CitskK/+goaMAAKi00047ZbXVVsvHH3+8\nyH1WX3319OnTpx6jAgAAYEVhZT4AAABojMo/j0I+SAYf0D2L/HR1klRUZND+3eovIBpcyxZNc8De\nm6dpSc0/Oi2bOzeHHbJVPUcFLGsOPbB7yhczf1RUVOTQA7vXY0SwZIqKinL44J5p2rRJjdubljTJ\nEYf2XOxKlCza4YN7pkmTmp8pioqKstWWa2e9dVap56hgGVQ+o6EjAACoori4OMOHD0+zZs1q3N6s\nWbMMHz48xcU+fgkAAEDd+W4SAAAAgEar4yqtskufDVJSw4esS5oUZ9edNkzHVVo1QGQ0pMMO6ZGy\nuTUXPLdp3Tx77bZJPUcELGvWXKNtdui9boqLqxc4FRcXZcdtuqTT6m0bIDKouyEHdk9p6dwat5WW\n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\nxkExHyukzp075/rrr2/oMAAAAJZbc+eWp6goeWXCpBQVJVs7oGKIAAAgAElEQVT2Wq/gY86cMT3/\n+8dr88yjD2byx5Mye9bMym0zpk2tU1/TpnyaJDliz541bp/0/ruVX5/001+kV5/d89iD9+TVcU9l\nzD23Z8w9t6fjGmvlJ7+8Mett3LXW467UvEVmz5qZstLSNG3WrE4x16S0rLSy38Zo+ozp+d3N1+Th\nvz+YSR9PyqwFcmJqHXNi8vyc2HavrWrc/t4COXH5ub/Ibn12z70P3p1nXngqI++9LSPvvS1rrrFW\nrr/i99lso9rnRPPmLTJr1syUlpam2VLMieZyQk7MV8ic6LxW+4y699U6rbRXNv8D2q++Pm/+aNGi\ny1KPa2HyorrGfq/wTFFdY3+mkBPVNfacSMwfNTF/uFcs7NveK+57cELl13VZge/kk09eovEAgGVb\n//79C9Z3UVFR1t1w0xx39sW54OQjc9NVF2fHPfZJi5atK/dZ0ue9Bfv46o8mVFRULHL/c44ZlFkz\nP8/kj/6bxx68Jzv33//bnBoAAAArIMV8rJDee++9hg4BAABgmTNq1KgMGjRosfsUFRWlpElxyubO\nzc7br5+jhvbKXX/5Rz4tbV/w+C4789i8/NwTGXLMjzJgyHfTpu28MQf0rPuqgO1XWTWffvxhbnv0\ntbRu226x+xYVFWX7XffK9rvulYry8rz+ygsZeeOv8+Izj+Wq80/NVX9+sNbjrtJxjXzw7r8z8/Pp\nad9h1TrHvbDPp0+b1+9qa3zrvpZHJ5x9bJ587vGcfPQpOeLQ76b9/JxYr1fdV/rq2GHVfPjJh3lp\n7IS0q0VO7LnLXtlzl71SXl6e8a+My9U3/TqPP/NYzjj/lPzl1odqPe4aHdfI2+/+O9M/n5ZVO3Ss\nc9wLmzY/J9aQE3JivkLmxBUXDMgVFwzI3fe/lgOP+ONi9y0qKkpJSXHKyqrOH6WlKy/1uBYmL6pr\n7PcKzxTVNfZnCjlRXWPPicT8URPzh3vFwr7tveKKCwZk+uezc8sd4/P2u1PStKTJN67KlyTTpk1L\n27Ztl2hMAKBx67Xjbtmse6+8/vK43HvrDTn06B9Wbluaz3uLc+xZF2fW5zNy5Xmn5NrLfpyuPbbJ\nqqt3WqpjAAAAsHwrbugAAAAAgIbXrFmTJMnW3dfOz8/fJ+++/OM8eu+xOXxwz8pthbDgL8nfeOWF\n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\nAAAAACxJPJkPAAAAAABgMWzbcecFvuY3atzQnPvzM5MkzZo1zT+efSVJ0q3nbmnXoW1uHPjrecIb\nc39/yalX5Og+vfPwywNz9e19888XX89RXz8u778zttr+l59+Vb534nfy8MsD88s/XD3n+IRxE3JE\nj6Pz+ANP5fxrz8lj/3o4l/3uogx7YkSO3PfYOcG/JLngpEty1w1/zHeO7ZW//+vhPPLywFzwy3Pz\n3lvv54i9jym5X03BlI8/+jjf73F0Bj86ND/99Xl57PWHcuF1P8mTDw3OEXsfkwnjJlQ7xnWX/DYn\nn3d8HnzxL9lz/2556N5Hc80F1y0w/g96Hpejvl73INRrL72eJOm01mrzzFvKtaurqVNmrXfLFVss\n0Db72NRJU+o0VuXMyjzz+PCcf+LF6b7h13POMefnP/98M0ecfHj+9Mzduf1vN+ewY79VUpAvqX49\nFkWp51p0//qqc7bZ6zN7veraVp3f/ez3Of/4i/KDU76fJk2b5NZf3pG7rv/jnPb33xm7wM+bi0+5\nvE5j19f1rO5pgQ157zSkUeOGlvRVl/GWpDWpz727MNOmzUz/AS9mv+/cnFbr/CTfOOLWDHjoH5k2\nfWaqqqpSWVlZL/MAAAAAAMCSTpgPAAAAAABgMdQ10HHw9w7IN488ONOmTc/pvc/JG6+NyanfPSM/\nuuDEbL3jljWOf/RpvbPFdpun5Yotst1u2+bk847PlElTc+OVN1Xb/wenHJHNu26WFZqvkJ322mFO\nPdf3vSlj3/kgJ/3k2Oywx3ZpuWKLbLXDFvnxxT/K+2+Pze3X3fm/cxrybJJklU4d06Jl8zRt1jSd\n1187Z1zx43nPvY79anL9Ff3y4Xsf5eTzT0jXXbdJy5VazjnHse98kOv7Vn+OB3/vgKzbZZ2s1Gql\nfP/k7yZJhj0xYoF+VVWV1QaPajJu7LgkyUqtV15gvkW5dg1ln00PyMm9fpyn//ZMvv6tfXPzgzdk\nwKj+Of7sY9J5/bUXedya1oN5tWoza30++u961bVtfn8d8Fhu6NsvR53WOyece2wu/NW5qaioyC/O\n/1Xu/8NDSZLV1+qUUeOG5sEX/5KOq3XIqHFDc941Z9epztqu57PPPJ9zj70w+2x6QHZco1v23/qQ\nnPPDC/Ln2wbk7f+8k+nTpmfix5Py6F/+nu93P6rOYy/p9045LElrUl97tyYzZ1Zm0COv5HvH3532\nG5yfXkfdnkcefy3Tps1MZWVVZswQ4AMAAAAAYPnTpNwFAAAAAAAALC/6XHpK/vPqG3lu2As5bI8j\n8r0Tv5P9vr1vre/ZbNtN53m93e7bJkmGPb5geC1JNtl6o2qPD35kSJJkp712nOf47PDIU48MzQnn\nHpsk2Wu/bhl49wM58wc/yaprrJIdum2XHfbYPt323XWesGJd+9Vk8KOz+nTddZtqz3HIo0OTnL7A\n+zbc/Ktzvu+4aockyfgPP16g3+8funGhNczti8+/TJI0bbrgr9AW5drVZuVWK2XC+In57NPPs3Lr\nleZp++zTz2f1adOqpDGbNmuaZis0S7MVmi5yXXOrbT1KUeq5Ft2/vuqcrcl/1+eLz78oqW1+t1x7\ne5Jkv2/1TJLsc0iPTJk4NVee/fNcdMpladVm5ey2zy5Jkr8NfCzb7d51oWPOrbbreeaR5+ao03rn\n/y48MW3at8nYt8fmuWEvZMSTI/P7a27LuA/Gp0271tl2l21y+uWnljR2fd87y4IlZU3qa+9W549/\neSGnnTco746dnCZNGs0J7i0swHfXXXelffvSniIKAFBf3njjjay33nrlLgMAAIBlnDAfAAAAAABA\nPaspyNakaZP0vfmS7L/1NzN92vT0PHSfhY41f6ioTfs2SZKJH0+qtn/zFs2rPT5h/MQks57iVp13\nx7w35/vzrj07u/TYOQ//6dGMGjI6A+68PwPuvD+rrblqfn5733TZdIOS+tVk9jm0ade62nOcXfP8\nWq7Ucs73TZvNCq6V8gS+mjRvsUI++/TzTJ8+I82azRuIW5RrV5t1uqyTCeMn5sP3P1zgGn/w3gez\n+mxQt6fqPfTSgAx/amQevvfR3HfbgNz52z+k8/prZ99v9sg+h/TImuussUg11rYepSj1XIvuX191\nzjZj+owk1d97tbXN783XxyRJ2q/Sbs6xXkcfkkkTJ+fGK2/KWUefl+vu+XnW6bJOfv+L23L17Vcs\ndMy51XY9737ytnRY9X8Bqs7rr53O66+dgw7ff7HHru97pyFt23HnkvrXJcScLDlrUl97tzp/vv+l\n/41VwhP4zjnnnEWaDwCgvnTr1q3cJQAAALCME+YDAAAAAABoQHfdcE8aN26ULysrc+ZRP8mtj/RL\ni5Y1hyUmT5ic1nOF3Sb9NwDX9r+Bt7pq37FdPho7Lo/96+G0arNyrX0rKiqy5367Z8/9dk9lZWVe\nGPFSbv75rXnm8eG58ORLc9fjt5TUrybtOrTNuA/GZ3u604oAABAtSURBVNKEyem4WocFzrFdh7Yl\nnePi6tipY97699v5ZPLUtOvYboH2Uq9dbbbffds8+/RzeXn0K1l/o6/M0/aPZ19NkuzQbfs6jdW4\nSePstOcO2WnPHfLF51/kqYeH5KF7H02/q2/J9Vf0y6bbbJx9DumRHgftVe151WRh61FXpZ5r0f3r\nq87ZpkyamiRZpVPHktrm16Zd63w0dlzG/Puteeb/4ek/yOQJk/PHfvfm1MPPzGprrprtu22Xzbtu\nttAx51bb9Zw7yLcoGvLeqW+1BfDqGs5bFEvCmtTX3q3OdX0Pzieffpl+tw/Pv9/8OM2aNs606TMX\n+r4xY8akc+fOizQnAAAAAAAsDRqVuwAAAAAAAIBl1fxPdRr0hwfz94GPp//Qu7LehuvmjX++mctO\n61vrGC+MeGme1yOeHJUk2WGP7UqqpVvP3ZIko4c+u0Dbc8NeSO99jpmn7o/e/yhJ0qhRo2y1wxa5\nvN9FSZIx/316WCn9arLr3rskSUY+NWqe47PPcde9S3sq1uL66mZdkiRj3/lggbZFuXa1OeCw/dKi\nZfMMvOuBBdoG3vVAWq7YIgcc1rPkcZu3aJ4eB38tv7jzyjzy8sCcfdXpadKkSa4+99rss9mBOanX\nqXUeq7b1KEWp51p0//qqc7bZ61Pdkyhra5vf7Hv0pqtvWaCtz2WnZM/9uuXTqZ/mP6++kZ2/tuNC\nx5tffV3PUseu73tnWbCkrEl97d3qdGy/Ys780R7518iz8vKQPjn71D2z5uqzgunNmjZexIoBAAAA\nAGDpJ8wHAAAAAADQAJ595vn86qe/yTV3XZVV11glfW+6JC1aNs9D9z6ae39/X43vu/eW+/L88Bfz\n2aefZ+Tg0bnukt+mVZuV88Mzjipp/mPPOCprr7dW+p55df4+6PFMnjA5n33yWQY/OjQXnHhxfnT+\nCfP0v/iUK/LGP9/MtGnTM2HchNz6qzuSJDvsuf0i9avOcWcelU5rrZZfXfzbjBw8Op998tmcc+y0\n1mo5tsRznN8Peh6Xo75+fJ377/bf8OArz/9znuOLeu1q03G1Djmj72l5ceRLufrcazNpwuRMmjA5\nPzvnmrw06uWcdWWftF9l8Z6W1rpd6xzS+6D0u/+3GfTsn3LC2T/MuA/G1/n9Na1HqUo916L7J7OC\n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\n",
1759 "text/plain": [
1760 "<IPython.core.display.Image object>"
1761 ]
1762 },
1763 "execution_count": 40,
1764 "metadata": {},
1765 "output_type": "execute_result"
1766 }
1767 ],
1768 "source": [
1769 "# The show_graph() method of pipeline objects produces a graph to show how it is being calculated.\n",
1770 "pipe.show_graph(format='png')"
1771 ]
1772 },
1773 {
1774 "cell_type": "code",
1775 "execution_count": 41,
1776 "metadata": {
1777 "collapsed": false
1778 },
1779 "outputs": [
1780 {
1781 "data": {
1782 "text/html": [
1783 "<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
1784 "<table border=\"1\" class=\"dataframe\">\n",
1785 " <thead>\n",
1786 " <tr style=\"text-align: right;\">\n",
1787 " <th></th>\n",
1788 " <th></th>\n",
1789 " <th>next_amount</th>\n",
1790 " <th>next_currency</th>\n",
1791 " <th>next_ex_date</th>\n",
1792 " <th>next_type</th>\n",
1793 " <th>prev_amount</th>\n",
1794 " <th>prev_currency</th>\n",
1795 " <th>prev_ex_date</th>\n",
1796 " <th>prev_type</th>\n",
1797 " </tr>\n",
1798 " </thead>\n",
1799 " <tbody>\n",
1800 " <tr>\n",
1801 " <th rowspan=\"30\" valign=\"top\">2013-11-01 00:00:00+00:00</th>\n",
1802 " <th>Equity(312 [ALOT])</th>\n",
1803 " <td>NaN</td>\n",
1804 " <td>None</td>\n",
1805 " <td>NaT</td>\n",
1806 " <td>None</td>\n",
1807 " <td>0.0700</td>\n",
1808 " <td>$</td>\n",
1809 " <td>2013-09-11</td>\n",
1810 " <td>No Change QoQ</td>\n",
1811 " </tr>\n",
1812 " <tr>\n",
1813 " <th>Equity(548 [ASBI])</th>\n",
1814 " <td>NaN</td>\n",
1815 " <td>None</td>\n",
1816 " <td>NaT</td>\n",
1817 " <td>None</td>\n",
1818 " <td>0.0100</td>\n",
1819 " <td>$</td>\n",
1820 " <td>2013-10-02</td>\n",
1821 " <td>Decrease</td>\n",
1822 " </tr>\n",
1823 " <tr>\n",
1824 " <th>Equity(717 [BAMM])</th>\n",
1825 " <td>NaN</td>\n",
1826 " <td>None</td>\n",
1827 " <td>NaT</td>\n",
1828 " <td>None</td>\n",
1829 " <td>0.0500</td>\n",
1830 " <td>$</td>\n",
1831 " <td>2011-04-01</td>\n",
1832 " <td>No Change QoQ</td>\n",
1833 " </tr>\n",
1834 " <tr>\n",
1835 " <th>Equity(925 [BKSC])</th>\n",
1836 " <td>NaN</td>\n",
1837 " <td>None</td>\n",
1838 " <td>NaT</td>\n",
1839 " <td>None</td>\n",
1840 " <td>0.1300</td>\n",
1841 " <td>$</td>\n",
1842 " <td>2013-10-03</td>\n",
1843 " <td>Increase</td>\n",
1844 " </tr>\n",
1845 " <tr>\n",
1846 " <th>Equity(1088 [BRID])</th>\n",
1847 " <td>NaN</td>\n",
1848 " <td>None</td>\n",
1849 " <td>NaT</td>\n",
1850 " <td>None</td>\n",
1851 " <td>0.0500</td>\n",
1852 " <td>$</td>\n",
1853 " <td>2012-11-23</td>\n",
1854 " <td>Special</td>\n",
1855 " </tr>\n",
1856 " <tr>\n",
1857 " <th>Equity(2526 [EML])</th>\n",
1858 " <td>0.110</td>\n",
1859 " <td>$</td>\n",
1860 " <td>2013-11-18</td>\n",
1861 " <td>No Change QoQ</td>\n",
1862 " <td>0.1100</td>\n",
1863 " <td>$</td>\n",
1864 " <td>2013-08-19</td>\n",
1865 " <td>Increase</td>\n",
1866 " </tr>\n",
1867 " <tr>\n",
1868 " <th>Equity(3068 [FUNC])</th>\n",
1869 " <td>NaN</td>\n",
1870 " <td>None</td>\n",
1871 " <td>NaT</td>\n",
1872 " <td>None</td>\n",
1873 " <td>0.0100</td>\n",
1874 " <td>$</td>\n",
1875 " <td>2010-10-11</td>\n",
1876 " <td>No Change QoQ</td>\n",
1877 " </tr>\n",
1878 " <tr>\n",
1879 " <th>Equity(3353 [GROW])</th>\n",
1880 " <td>0.005</td>\n",
1881 " <td>$</td>\n",
1882 " <td>2013-11-07</td>\n",
1883 " <td>No Change QoQ</td>\n",
1884 " <td>0.0050</td>\n",
1885 " <td>$</td>\n",
1886 " <td>2013-10-03</td>\n",
1887 " <td>No Change QoQ</td>\n",
1888 " </tr>\n",
1889 " <tr>\n",
1890 " <th>Equity(3536 [HFFC])</th>\n",
1891 " <td>NaN</td>\n",
1892 " <td>None</td>\n",
1893 " <td>NaT</td>\n",
1894 " <td>None</td>\n",
1895 " <td>0.1125</td>\n",
1896 " <td>$</td>\n",
1897 " <td>2013-08-07</td>\n",
1898 " <td>No Change QoQ</td>\n",
1899 " </tr>\n",
1900 " <tr>\n",
1901 " <th>Equity(4292 [KOSS])</th>\n",
1902 " <td>0.060</td>\n",
1903 " <td>$</td>\n",
1904 " <td>2013-12-26</td>\n",
1905 " <td>No Change QoQ</td>\n",
1906 " <td>0.0600</td>\n",
1907 " <td>$</td>\n",
1908 " <td>2013-09-26</td>\n",
1909 " <td>No Change QoQ</td>\n",
1910 " </tr>\n",
1911 " <tr>\n",
1912 " <th>Equity(5859 [PEBK])</th>\n",
1913 " <td>NaN</td>\n",
1914 " <td>None</td>\n",
1915 " <td>NaT</td>\n",
1916 " <td>None</td>\n",
1917 " <td>0.0300</td>\n",
1918 " <td>$</td>\n",
1919 " <td>2013-08-29</td>\n",
1920 " <td>No Change QoQ</td>\n",
1921 " </tr>\n",
1922 " <tr>\n",
1923 " <th>Equity(6270 [PWX])</th>\n",
1924 " <td>NaN</td>\n",
1925 " <td>None</td>\n",
1926 " <td>NaT</td>\n",
1927 " <td>None</td>\n",
1928 " <td>0.0400</td>\n",
1929 " <td>$</td>\n",
1930 " <td>2013-05-06</td>\n",
1931 " <td>No Change QoQ</td>\n",
1932 " </tr>\n",
1933 " <tr>\n",
1934 " <th>Equity(6362 [RBPA_A])</th>\n",
1935 " <td>NaN</td>\n",
1936 " <td>None</td>\n",
1937 " <td>NaT</td>\n",
1938 " <td>None</td>\n",
1939 " <td>0.1500</td>\n",
1940 " <td>$</td>\n",
1941 " <td>2008-04-28</td>\n",
1942 " <td>No Change QoQ</td>\n",
1943 " </tr>\n",
1944 " <tr>\n",
1945 " <th>Equity(6483 [ARKR])</th>\n",
1946 " <td>NaN</td>\n",
1947 " <td>None</td>\n",
1948 " <td>NaT</td>\n",
1949 " <td>None</td>\n",
1950 " <td>0.2500</td>\n",
1951 " <td>$</td>\n",
1952 " <td>2013-09-24</td>\n",
1953 " <td>No Change QoQ</td>\n",
1954 " </tr>\n",
1955 " <tr>\n",
1956 " <th>Equity(6924 [SKY])</th>\n",
1957 " <td>NaN</td>\n",
1958 " <td>None</td>\n",
1959 " <td>NaT</td>\n",
1960 " <td>None</td>\n",
1961 " <td>0.0900</td>\n",
1962 " <td>$</td>\n",
1963 " <td>2011-09-14</td>\n",
1964 " <td>No Change QoQ</td>\n",
1965 " </tr>\n",
1966 " <tr>\n",
1967 " <th>Equity(7510 [PULS])</th>\n",
1968 " <td>NaN</td>\n",
1969 " <td>None</td>\n",
1970 " <td>NaT</td>\n",
1971 " <td>None</td>\n",
1972 " <td>0.0250</td>\n",
1973 " <td>$</td>\n",
1974 " <td>2011-10-05</td>\n",
1975 " <td>No Change QoQ</td>\n",
1976 " </tr>\n",
1977 " <tr>\n",
1978 " <th>Equity(7736 [UG])</th>\n",
1979 " <td>NaN</td>\n",
1980 " <td>None</td>\n",
1981 " <td>NaT</td>\n",
1982 " <td>None</td>\n",
1983 " <td>0.4700</td>\n",
1984 " <td>$</td>\n",
1985 " <td>2013-05-28</td>\n",
1986 " <td>Increase</td>\n",
1987 " </tr>\n",
1988 " <tr>\n",
1989 " <th>Equity(7899 [VALU])</th>\n",
1990 " <td>NaN</td>\n",
1991 " <td>None</td>\n",
1992 " <td>NaT</td>\n",
1993 " <td>None</td>\n",
1994 " <td>0.1500</td>\n",
1995 " <td>$</td>\n",
1996 " <td>2013-10-24</td>\n",
1997 " <td>No Change QoQ</td>\n",
1998 " </tr>\n",
1999 " <tr>\n",
2000 " <th>Equity(8759 [UBCP])</th>\n",
2001 " <td>NaN</td>\n",
2002 " <td>None</td>\n",
2003 " <td>NaT</td>\n",
2004 " <td>None</td>\n",
2005 " <td>0.0700</td>\n",
2006 " <td>$</td>\n",
2007 " <td>2013-09-06</td>\n",
2008 " <td>No Change QoQ</td>\n",
2009 " </tr>\n",
2010 " <tr>\n",
2011 " <th>Equity(9849 [TLF])</th>\n",
2012 " <td>NaN</td>\n",
2013 " <td>None</td>\n",
2014 " <td>NaT</td>\n",
2015 " <td>None</td>\n",
2016 " <td>0.2500</td>\n",
2017 " <td>$</td>\n",
2018 " <td>2012-02-28</td>\n",
2019 " <td>Special</td>\n",
2020 " </tr>\n",
2021 " <tr>\n",
2022 " <th>Equity(10034 [SAL])</th>\n",
2023 " <td>0.280</td>\n",
2024 " <td>$</td>\n",
2025 " <td>2013-11-06</td>\n",
2026 " <td>No Change QoQ</td>\n",
2027 " <td>0.2800</td>\n",
2028 " <td>$</td>\n",
2029 " <td>2013-08-07</td>\n",
2030 " <td>No Change QoQ</td>\n",
2031 " </tr>\n",
2032 " <tr>\n",
2033 " <th>Equity(10833 [RGCO])</th>\n",
2034 " <td>NaN</td>\n",
2035 " <td>None</td>\n",
2036 " <td>NaT</td>\n",
2037 " <td>None</td>\n",
2038 " <td>0.1800</td>\n",
2039 " <td>$</td>\n",
2040 " <td>2013-10-11</td>\n",
2041 " <td>No Change QoQ</td>\n",
2042 " </tr>\n",
2043 " <tr>\n",
2044 " <th>Equity(10981 [LARK])</th>\n",
2045 " <td>NaN</td>\n",
2046 " <td>None</td>\n",
2047 " <td>NaT</td>\n",
2048 " <td>None</td>\n",
2049 " <td>0.1900</td>\n",
2050 " <td>$</td>\n",
2051 " <td>2013-08-12</td>\n",
2052 " <td>No Change QoQ</td>\n",
2053 " </tr>\n",
2054 " <tr>\n",
2055 " <th>Equity(11695 [THRD])</th>\n",
2056 " <td>0.100</td>\n",
2057 " <td>$</td>\n",
2058 " <td>2013-11-06</td>\n",
2059 " <td>No Change QoQ</td>\n",
2060 " <td>0.1000</td>\n",
2061 " <td>$</td>\n",
2062 " <td>2013-08-06</td>\n",
2063 " <td>Increase</td>\n",
2064 " </tr>\n",
2065 " <tr>\n",
2066 " <th>Equity(12664 [FWV])</th>\n",
2067 " <td>NaN</td>\n",
2068 " <td>None</td>\n",
2069 " <td>NaT</td>\n",
2070 " <td>None</td>\n",
2071 " <td>0.1900</td>\n",
2072 " <td>$</td>\n",
2073 " <td>2013-08-29</td>\n",
2074 " <td>No Change QoQ</td>\n",
2075 " </tr>\n",
2076 " <tr>\n",
2077 " <th>Equity(12667 [ALLB])</th>\n",
2078 " <td>0.050</td>\n",
2079 " <td>$</td>\n",
2080 " <td>2013-11-06</td>\n",
2081 " <td>No Change QoQ</td>\n",
2082 " <td>0.0500</td>\n",
2083 " <td>$</td>\n",
2084 " <td>2013-08-07</td>\n",
2085 " <td>No Change QoQ</td>\n",
2086 " </tr>\n",
2087 " <tr>\n",
2088 " <th>Equity(13499 [AUBN])</th>\n",
2089 " <td>NaN</td>\n",
2090 " <td>None</td>\n",
2091 " <td>NaT</td>\n",
2092 " <td>None</td>\n",
2093 " <td>0.2100</td>\n",
2094 " <td>$</td>\n",
2095 " <td>2013-09-06</td>\n",
2096 " <td>No Change QoQ</td>\n",
2097 " </tr>\n",
2098 " <tr>\n",
2099 " <th>Equity(14098 [LTRE])</th>\n",
2100 " <td>NaN</td>\n",
2101 " <td>None</td>\n",
2102 " <td>NaT</td>\n",
2103 " <td>None</td>\n",
2104 " <td>2.2000</td>\n",
2105 " <td>$</td>\n",
2106 " <td>2010-08-18</td>\n",
2107 " <td>Special</td>\n",
2108 " </tr>\n",
2109 " <tr>\n",
2110 " <th>Equity(14410 [OVBC])</th>\n",
2111 " <td>NaN</td>\n",
2112 " <td>None</td>\n",
2113 " <td>NaT</td>\n",
2114 " <td>None</td>\n",
2115 " <td>0.2100</td>\n",
2116 " <td>$</td>\n",
2117 " <td>2013-10-23</td>\n",
2118 " <td>No Change QoQ</td>\n",
2119 " </tr>\n",
2120 " <tr>\n",
2121 " <th>Equity(14996 [PFBI])</th>\n",
2122 " <td>NaN</td>\n",
2123 " <td>None</td>\n",
2124 " <td>NaT</td>\n",
2125 " <td>None</td>\n",
2126 " <td>0.1100</td>\n",
2127 " <td>$</td>\n",
2128 " <td>2013-09-12</td>\n",
2129 " <td>No Change QoQ</td>\n",
2130 " </tr>\n",
2131 " <tr>\n",
2132 " <th>...</th>\n",
2133 " <th>...</th>\n",
2134 " <td>...</td>\n",
2135 " <td>...</td>\n",
2136 " <td>...</td>\n",
2137 " <td>...</td>\n",
2138 " <td>...</td>\n",
2139 " <td>...</td>\n",
2140 " <td>...</td>\n",
2141 " <td>...</td>\n",
2142 " </tr>\n",
2143 " <tr>\n",
2144 " <th rowspan=\"30\" valign=\"top\">2013-11-25 00:00:00+00:00</th>\n",
2145 " <th>Equity(25600 [LPHI])</th>\n",
2146 " <td>NaN</td>\n",
2147 " <td>None</td>\n",
2148 " <td>NaT</td>\n",
2149 " <td>None</td>\n",
2150 " <td>0.0500</td>\n",
2151 " <td>$</td>\n",
2152 " <td>2013-09-13</td>\n",
2153 " <td>No Change QoQ</td>\n",
2154 " </tr>\n",
2155 " <tr>\n",
2156 " <th>Equity(25785 [OLBK])</th>\n",
2157 " <td>0.040</td>\n",
2158 " <td>$</td>\n",
2159 " <td>2013-12-11</td>\n",
2160 " <td>No Change QoQ</td>\n",
2161 " <td>0.0400</td>\n",
2162 " <td>$</td>\n",
2163 " <td>2013-08-22</td>\n",
2164 " <td>No Change QoQ</td>\n",
2165 " </tr>\n",
2166 " <tr>\n",
2167 " <th>Equity(25834 [CHEV])</th>\n",
2168 " <td>0.090</td>\n",
2169 " <td>$</td>\n",
2170 " <td>2013-12-11</td>\n",
2171 " <td>No Change QoQ</td>\n",
2172 " <td>0.0900</td>\n",
2173 " <td>$</td>\n",
2174 " <td>2013-09-11</td>\n",
2175 " <td>No Change QoQ</td>\n",
2176 " </tr>\n",
2177 " <tr>\n",
2178 " <th>Equity(26281 [OPHC])</th>\n",
2179 " <td>NaN</td>\n",
2180 " <td>None</td>\n",
2181 " <td>NaT</td>\n",
2182 " <td>None</td>\n",
2183 " <td>0.0000</td>\n",
2184 " <td>NaN</td>\n",
2185 " <td>2009-06-09</td>\n",
2186 " <td>Stock</td>\n",
2187 " </tr>\n",
2188 " <tr>\n",
2189 " <th>Equity(26348 [FFKY])</th>\n",
2190 " <td>NaN</td>\n",
2191 " <td>None</td>\n",
2192 " <td>NaT</td>\n",
2193 " <td>None</td>\n",
2194 " <td>0.0500</td>\n",
2195 " <td>$</td>\n",
2196 " <td>2009-09-11</td>\n",
2197 " <td>Decrease</td>\n",
2198 " </tr>\n",
2199 " <tr>\n",
2200 " <th>Equity(26420 [FCLF])</th>\n",
2201 " <td>NaN</td>\n",
2202 " <td>None</td>\n",
2203 " <td>NaT</td>\n",
2204 " <td>None</td>\n",
2205 " <td>0.0600</td>\n",
2206 " <td>$</td>\n",
2207 " <td>2013-11-13</td>\n",
2208 " <td>No Change QoQ</td>\n",
2209 " </tr>\n",
2210 " <tr>\n",
2211 " <th>Equity(26484 [QCCO])</th>\n",
2212 " <td>NaN</td>\n",
2213 " <td>None</td>\n",
2214 " <td>NaT</td>\n",
2215 " <td>None</td>\n",
2216 " <td>0.0500</td>\n",
2217 " <td>$</td>\n",
2218 " <td>2013-08-20</td>\n",
2219 " <td>No Change QoQ</td>\n",
2220 " </tr>\n",
2221 " <tr>\n",
2222 " <th>Equity(26914 [OSHC])</th>\n",
2223 " <td>NaN</td>\n",
2224 " <td>None</td>\n",
2225 " <td>NaT</td>\n",
2226 " <td>None</td>\n",
2227 " <td>0.0600</td>\n",
2228 " <td>$</td>\n",
2229 " <td>2013-11-06</td>\n",
2230 " <td>No Change QoQ</td>\n",
2231 " </tr>\n",
2232 " <tr>\n",
2233 " <th>Equity(26990 [SMMF])</th>\n",
2234 " <td>NaN</td>\n",
2235 " <td>None</td>\n",
2236 " <td>NaT</td>\n",
2237 " <td>None</td>\n",
2238 " <td>0.0600</td>\n",
2239 " <td>$</td>\n",
2240 " <td>2009-05-28</td>\n",
2241 " <td>Decrease</td>\n",
2242 " </tr>\n",
2243 " <tr>\n",
2244 " <th>Equity(27082 [KFFB])</th>\n",
2245 " <td>NaN</td>\n",
2246 " <td>None</td>\n",
2247 " <td>NaT</td>\n",
2248 " <td>None</td>\n",
2249 " <td>0.1000</td>\n",
2250 " <td>$</td>\n",
2251 " <td>2013-10-29</td>\n",
2252 " <td>No Change QoQ</td>\n",
2253 " </tr>\n",
2254 " <tr>\n",
2255 " <th>Equity(27513 [OFLX])</th>\n",
2256 " <td>NaN</td>\n",
2257 " <td>None</td>\n",
2258 " <td>NaT</td>\n",
2259 " <td>None</td>\n",
2260 " <td>1.0000</td>\n",
2261 " <td>$</td>\n",
2262 " <td>2012-11-28</td>\n",
2263 " <td>Special</td>\n",
2264 " </tr>\n",
2265 " <tr>\n",
2266 " <th>Equity(28256 [UCBA])</th>\n",
2267 " <td>NaN</td>\n",
2268 " <td>None</td>\n",
2269 " <td>NaT</td>\n",
2270 " <td>None</td>\n",
2271 " <td>0.0600</td>\n",
2272 " <td>$</td>\n",
2273 " <td>2013-11-06</td>\n",
2274 " <td>No Change QoQ</td>\n",
2275 " </tr>\n",
2276 " <tr>\n",
2277 " <th>Equity(28305 [TRCB])</th>\n",
2278 " <td>NaN</td>\n",
2279 " <td>None</td>\n",
2280 " <td>NaT</td>\n",
2281 " <td>None</td>\n",
2282 " <td>0.0200</td>\n",
2283 " <td>$</td>\n",
2284 " <td>2013-11-06</td>\n",
2285 " <td>No Change QoQ</td>\n",
2286 " </tr>\n",
2287 " <tr>\n",
2288 " <th>Equity(28613 [DVCR])</th>\n",
2289 " <td>NaN</td>\n",
2290 " <td>None</td>\n",
2291 " <td>NaT</td>\n",
2292 " <td>None</td>\n",
2293 " <td>0.0550</td>\n",
2294 " <td>$</td>\n",
2295 " <td>2013-09-26</td>\n",
2296 " <td>No Change QoQ</td>\n",
2297 " </tr>\n",
2298 " <tr>\n",
2299 " <th>Equity(29090 [CZWI])</th>\n",
2300 " <td>NaN</td>\n",
2301 " <td>None</td>\n",
2302 " <td>NaT</td>\n",
2303 " <td>None</td>\n",
2304 " <td>0.0200</td>\n",
2305 " <td>$</td>\n",
2306 " <td>2013-04-02</td>\n",
2307 " <td>Initiation</td>\n",
2308 " </tr>\n",
2309 " <tr>\n",
2310 " <th>Equity(29152 [DNBF])</th>\n",
2311 " <td>0.070</td>\n",
2312 " <td>$</td>\n",
2313 " <td>2013-12-06</td>\n",
2314 " <td>No Change QoQ</td>\n",
2315 " <td>0.0700</td>\n",
2316 " <td>$</td>\n",
2317 " <td>2013-09-06</td>\n",
2318 " <td>No Change QoQ</td>\n",
2319 " </tr>\n",
2320 " <tr>\n",
2321 " <th>Equity(29353 [FBMS])</th>\n",
2322 " <td>NaN</td>\n",
2323 " <td>None</td>\n",
2324 " <td>NaT</td>\n",
2325 " <td>None</td>\n",
2326 " <td>0.0375</td>\n",
2327 " <td>$</td>\n",
2328 " <td>2013-11-08</td>\n",
2329 " <td>No Change QoQ</td>\n",
2330 " </tr>\n",
2331 " <tr>\n",
2332 " <th>Equity(29723 [HUSA])</th>\n",
2333 " <td>NaN</td>\n",
2334 " <td>None</td>\n",
2335 " <td>NaT</td>\n",
2336 " <td>None</td>\n",
2337 " <td>0.2000</td>\n",
2338 " <td>$</td>\n",
2339 " <td>2010-12-15</td>\n",
2340 " <td>Special</td>\n",
2341 " </tr>\n",
2342 " <tr>\n",
2343 " <th>Equity(30955 [SSFN])</th>\n",
2344 " <td>NaN</td>\n",
2345 " <td>None</td>\n",
2346 " <td>NaT</td>\n",
2347 " <td>None</td>\n",
2348 " <td>0.0100</td>\n",
2349 " <td>$</td>\n",
2350 " <td>2013-10-30</td>\n",
2351 " <td>No Change QoQ</td>\n",
2352 " </tr>\n",
2353 " <tr>\n",
2354 " <th>Equity(32347 [NECB])</th>\n",
2355 " <td>NaN</td>\n",
2356 " <td>None</td>\n",
2357 " <td>NaT</td>\n",
2358 " <td>None</td>\n",
2359 " <td>0.0300</td>\n",
2360 " <td>$</td>\n",
2361 " <td>2013-10-09</td>\n",
2362 " <td>No Change QoQ</td>\n",
2363 " </tr>\n",
2364 " <tr>\n",
2365 " <th>Equity(32391 [SSBI])</th>\n",
2366 " <td>NaN</td>\n",
2367 " <td>None</td>\n",
2368 " <td>NaT</td>\n",
2369 " <td>None</td>\n",
2370 " <td>0.1100</td>\n",
2371 " <td>$</td>\n",
2372 " <td>2013-05-13</td>\n",
2373 " <td>No Change QoQ</td>\n",
2374 " </tr>\n",
2375 " <tr>\n",
2376 " <th>Equity(32624 [PBIB])</th>\n",
2377 " <td>NaN</td>\n",
2378 " <td>None</td>\n",
2379 " <td>NaT</td>\n",
2380 " <td>None</td>\n",
2381 " <td>0.0100</td>\n",
2382 " <td>$</td>\n",
2383 " <td>2011-06-15</td>\n",
2384 " <td>No Change QoQ</td>\n",
2385 " </tr>\n",
2386 " <tr>\n",
2387 " <th>Equity(32818 [SONA])</th>\n",
2388 " <td>NaN</td>\n",
2389 " <td>None</td>\n",
2390 " <td>NaT</td>\n",
2391 " <td>None</td>\n",
2392 " <td>0.0700</td>\n",
2393 " <td>$</td>\n",
2394 " <td>2013-11-08</td>\n",
2395 " <td>No Change QoQ</td>\n",
2396 " </tr>\n",
2397 " <tr>\n",
2398 " <th>Equity(33132 [MSBF])</th>\n",
2399 " <td>NaN</td>\n",
2400 " <td>None</td>\n",
2401 " <td>NaT</td>\n",
2402 " <td>None</td>\n",
2403 " <td>0.0300</td>\n",
2404 " <td>$</td>\n",
2405 " <td>2012-06-28</td>\n",
2406 " <td>No Change QoQ</td>\n",
2407 " </tr>\n",
2408 " <tr>\n",
2409 " <th>Equity(33774 [ATV])</th>\n",
2410 " <td>NaN</td>\n",
2411 " <td>None</td>\n",
2412 " <td>NaT</td>\n",
2413 " <td>None</td>\n",
2414 " <td>0.2300</td>\n",
2415 " <td>$</td>\n",
2416 " <td>2010-11-11</td>\n",
2417 " <td>Special</td>\n",
2418 " </tr>\n",
2419 " <tr>\n",
2420 " <th>Equity(35160 [EDS])</th>\n",
2421 " <td>NaN</td>\n",
2422 " <td>None</td>\n",
2423 " <td>NaT</td>\n",
2424 " <td>None</td>\n",
2425 " <td>0.0500</td>\n",
2426 " <td>$</td>\n",
2427 " <td>2008-08-13</td>\n",
2428 " <td>No Change QoQ</td>\n",
2429 " </tr>\n",
2430 " <tr>\n",
2431 " <th>Equity(35396 [SFBC])</th>\n",
2432 " <td>NaN</td>\n",
2433 " <td>None</td>\n",
2434 " <td>NaT</td>\n",
2435 " <td>None</td>\n",
2436 " <td>0.0500</td>\n",
2437 " <td>$</td>\n",
2438 " <td>2013-11-11</td>\n",
2439 " <td>No Change QoQ</td>\n",
2440 " </tr>\n",
2441 " <tr>\n",
2442 " <th>Equity(36240 [VRS])</th>\n",
2443 " <td>NaN</td>\n",
2444 " <td>None</td>\n",
2445 " <td>NaT</td>\n",
2446 " <td>None</td>\n",
2447 " <td>0.0300</td>\n",
2448 " <td>$</td>\n",
2449 " <td>2008-11-14</td>\n",
2450 " <td>No Change QoQ</td>\n",
2451 " </tr>\n",
2452 " <tr>\n",
2453 " <th>Equity(41415 [ZX])</th>\n",
2454 " <td>NaN</td>\n",
2455 " <td>None</td>\n",
2456 " <td>NaT</td>\n",
2457 " <td>None</td>\n",
2458 " <td>0.0600</td>\n",
2459 " <td>$</td>\n",
2460 " <td>2012-03-28</td>\n",
2461 " <td>Initiation</td>\n",
2462 " </tr>\n",
2463 " <tr>\n",
2464 " <th>Equity(41893 [PBSK])</th>\n",
2465 " <td>NaN</td>\n",
2466 " <td>None</td>\n",
2467 " <td>NaT</td>\n",
2468 " <td>None</td>\n",
2469 " <td>0.0500</td>\n",
2470 " <td>$</td>\n",
2471 " <td>2013-10-29</td>\n",
2472 " <td>Increase</td>\n",
2473 " </tr>\n",
2474 " </tbody>\n",
2475 "</table>\n",
2476 "<p>1538 rows × 8 columns</p>\n",
2477 "</div>"
2478 ],
2479 "text/plain": [
2480 " next_amount next_currency \\\n",
2481 "2013-11-01 00:00:00+00:00 Equity(312 [ALOT]) NaN None \n",
2482 " Equity(548 [ASBI]) NaN None \n",
2483 " Equity(717 [BAMM]) NaN None \n",
2484 " Equity(925 [BKSC]) NaN None \n",
2485 " Equity(1088 [BRID]) NaN None \n",
2486 " Equity(2526 [EML]) 0.110 $ \n",
2487 " Equity(3068 [FUNC]) NaN None \n",
2488 " Equity(3353 [GROW]) 0.005 $ \n",
2489 " Equity(3536 [HFFC]) NaN None \n",
2490 " Equity(4292 [KOSS]) 0.060 $ \n",
2491 " Equity(5859 [PEBK]) NaN None \n",
2492 " Equity(6270 [PWX]) NaN None \n",
2493 " Equity(6362 [RBPA_A]) NaN None \n",
2494 " Equity(6483 [ARKR]) NaN None \n",
2495 " Equity(6924 [SKY]) NaN None \n",
2496 " Equity(7510 [PULS]) NaN None \n",
2497 " Equity(7736 [UG]) NaN None \n",
2498 " Equity(7899 [VALU]) NaN None \n",
2499 " Equity(8759 [UBCP]) NaN None \n",
2500 " Equity(9849 [TLF]) NaN None \n",
2501 " Equity(10034 [SAL]) 0.280 $ \n",
2502 " Equity(10833 [RGCO]) NaN None \n",
2503 " Equity(10981 [LARK]) NaN None \n",
2504 " Equity(11695 [THRD]) 0.100 $ \n",
2505 " Equity(12664 [FWV]) NaN None \n",
2506 " Equity(12667 [ALLB]) 0.050 $ \n",
2507 " Equity(13499 [AUBN]) NaN None \n",
2508 " Equity(14098 [LTRE]) NaN None \n",
2509 " Equity(14410 [OVBC]) NaN None \n",
2510 " Equity(14996 [PFBI]) NaN None \n",
2511 "... ... ... \n",
2512 "2013-11-25 00:00:00+00:00 Equity(25600 [LPHI]) NaN None \n",
2513 " Equity(25785 [OLBK]) 0.040 $ \n",
2514 " Equity(25834 [CHEV]) 0.090 $ \n",
2515 " Equity(26281 [OPHC]) NaN None \n",
2516 " Equity(26348 [FFKY]) NaN None \n",
2517 " Equity(26420 [FCLF]) NaN None \n",
2518 " Equity(26484 [QCCO]) NaN None \n",
2519 " Equity(26914 [OSHC]) NaN None \n",
2520 " Equity(26990 [SMMF]) NaN None \n",
2521 " Equity(27082 [KFFB]) NaN None \n",
2522 " Equity(27513 [OFLX]) NaN None \n",
2523 " Equity(28256 [UCBA]) NaN None \n",
2524 " Equity(28305 [TRCB]) NaN None \n",
2525 " Equity(28613 [DVCR]) NaN None \n",
2526 " Equity(29090 [CZWI]) NaN None \n",
2527 " Equity(29152 [DNBF]) 0.070 $ \n",
2528 " Equity(29353 [FBMS]) NaN None \n",
2529 " Equity(29723 [HUSA]) NaN None \n",
2530 " Equity(30955 [SSFN]) NaN None \n",
2531 " Equity(32347 [NECB]) NaN None \n",
2532 " Equity(32391 [SSBI]) NaN None \n",
2533 " Equity(32624 [PBIB]) NaN None \n",
2534 " Equity(32818 [SONA]) NaN None \n",
2535 " Equity(33132 [MSBF]) NaN None \n",
2536 " Equity(33774 [ATV]) NaN None \n",
2537 " Equity(35160 [EDS]) NaN None \n",
2538 " Equity(35396 [SFBC]) NaN None \n",
2539 " Equity(36240 [VRS]) NaN None \n",
2540 " Equity(41415 [ZX]) NaN None \n",
2541 " Equity(41893 [PBSK]) NaN None \n",
2542 "\n",
2543 " next_ex_date next_type \\\n",
2544 "2013-11-01 00:00:00+00:00 Equity(312 [ALOT]) NaT None \n",
2545 " Equity(548 [ASBI]) NaT None \n",
2546 " Equity(717 [BAMM]) NaT None \n",
2547 " Equity(925 [BKSC]) NaT None \n",
2548 " Equity(1088 [BRID]) NaT None \n",
2549 " Equity(2526 [EML]) 2013-11-18 No Change QoQ \n",
2550 " Equity(3068 [FUNC]) NaT None \n",
2551 " Equity(3353 [GROW]) 2013-11-07 No Change QoQ \n",
2552 " Equity(3536 [HFFC]) NaT None \n",
2553 " Equity(4292 [KOSS]) 2013-12-26 No Change QoQ \n",
2554 " Equity(5859 [PEBK]) NaT None \n",
2555 " Equity(6270 [PWX]) NaT None \n",
2556 " Equity(6362 [RBPA_A]) NaT None \n",
2557 " Equity(6483 [ARKR]) NaT None \n",
2558 " Equity(6924 [SKY]) NaT None \n",
2559 " Equity(7510 [PULS]) NaT None \n",
2560 " Equity(7736 [UG]) NaT None \n",
2561 " Equity(7899 [VALU]) NaT None \n",
2562 " Equity(8759 [UBCP]) NaT None \n",
2563 " Equity(9849 [TLF]) NaT None \n",
2564 " Equity(10034 [SAL]) 2013-11-06 No Change QoQ \n",
2565 " Equity(10833 [RGCO]) NaT None \n",
2566 " Equity(10981 [LARK]) NaT None \n",
2567 " Equity(11695 [THRD]) 2013-11-06 No Change QoQ \n",
2568 " Equity(12664 [FWV]) NaT None \n",
2569 " Equity(12667 [ALLB]) 2013-11-06 No Change QoQ \n",
2570 " Equity(13499 [AUBN]) NaT None \n",
2571 " Equity(14098 [LTRE]) NaT None \n",
2572 " Equity(14410 [OVBC]) NaT None \n",
2573 " Equity(14996 [PFBI]) NaT None \n",
2574 "... ... ... \n",
2575 "2013-11-25 00:00:00+00:00 Equity(25600 [LPHI]) NaT None \n",
2576 " Equity(25785 [OLBK]) 2013-12-11 No Change QoQ \n",
2577 " Equity(25834 [CHEV]) 2013-12-11 No Change QoQ \n",
2578 " Equity(26281 [OPHC]) NaT None \n",
2579 " Equity(26348 [FFKY]) NaT None \n",
2580 " Equity(26420 [FCLF]) NaT None \n",
2581 " Equity(26484 [QCCO]) NaT None \n",
2582 " Equity(26914 [OSHC]) NaT None \n",
2583 " Equity(26990 [SMMF]) NaT None \n",
2584 " Equity(27082 [KFFB]) NaT None \n",
2585 " Equity(27513 [OFLX]) NaT None \n",
2586 " Equity(28256 [UCBA]) NaT None \n",
2587 " Equity(28305 [TRCB]) NaT None \n",
2588 " Equity(28613 [DVCR]) NaT None \n",
2589 " Equity(29090 [CZWI]) NaT None \n",
2590 " Equity(29152 [DNBF]) 2013-12-06 No Change QoQ \n",
2591 " Equity(29353 [FBMS]) NaT None \n",
2592 " Equity(29723 [HUSA]) NaT None \n",
2593 " Equity(30955 [SSFN]) NaT None \n",
2594 " Equity(32347 [NECB]) NaT None \n",
2595 " Equity(32391 [SSBI]) NaT None \n",
2596 " Equity(32624 [PBIB]) NaT None \n",
2597 " Equity(32818 [SONA]) NaT None \n",
2598 " Equity(33132 [MSBF]) NaT None \n",
2599 " Equity(33774 [ATV]) NaT None \n",
2600 " Equity(35160 [EDS]) NaT None \n",
2601 " Equity(35396 [SFBC]) NaT None \n",
2602 " Equity(36240 [VRS]) NaT None \n",
2603 " Equity(41415 [ZX]) NaT None \n",
2604 " Equity(41893 [PBSK]) NaT None \n",
2605 "\n",
2606 " prev_amount prev_currency \\\n",
2607 "2013-11-01 00:00:00+00:00 Equity(312 [ALOT]) 0.0700 $ \n",
2608 " Equity(548 [ASBI]) 0.0100 $ \n",
2609 " Equity(717 [BAMM]) 0.0500 $ \n",
2610 " Equity(925 [BKSC]) 0.1300 $ \n",
2611 " Equity(1088 [BRID]) 0.0500 $ \n",
2612 " Equity(2526 [EML]) 0.1100 $ \n",
2613 " Equity(3068 [FUNC]) 0.0100 $ \n",
2614 " Equity(3353 [GROW]) 0.0050 $ \n",
2615 " Equity(3536 [HFFC]) 0.1125 $ \n",
2616 " Equity(4292 [KOSS]) 0.0600 $ \n",
2617 " Equity(5859 [PEBK]) 0.0300 $ \n",
2618 " Equity(6270 [PWX]) 0.0400 $ \n",
2619 " Equity(6362 [RBPA_A]) 0.1500 $ \n",
2620 " Equity(6483 [ARKR]) 0.2500 $ \n",
2621 " Equity(6924 [SKY]) 0.0900 $ \n",
2622 " Equity(7510 [PULS]) 0.0250 $ \n",
2623 " Equity(7736 [UG]) 0.4700 $ \n",
2624 " Equity(7899 [VALU]) 0.1500 $ \n",
2625 " Equity(8759 [UBCP]) 0.0700 $ \n",
2626 " Equity(9849 [TLF]) 0.2500 $ \n",
2627 " Equity(10034 [SAL]) 0.2800 $ \n",
2628 " Equity(10833 [RGCO]) 0.1800 $ \n",
2629 " Equity(10981 [LARK]) 0.1900 $ \n",
2630 " Equity(11695 [THRD]) 0.1000 $ \n",
2631 " Equity(12664 [FWV]) 0.1900 $ \n",
2632 " Equity(12667 [ALLB]) 0.0500 $ \n",
2633 " Equity(13499 [AUBN]) 0.2100 $ \n",
2634 " Equity(14098 [LTRE]) 2.2000 $ \n",
2635 " Equity(14410 [OVBC]) 0.2100 $ \n",
2636 " Equity(14996 [PFBI]) 0.1100 $ \n",
2637 "... ... ... \n",
2638 "2013-11-25 00:00:00+00:00 Equity(25600 [LPHI]) 0.0500 $ \n",
2639 " Equity(25785 [OLBK]) 0.0400 $ \n",
2640 " Equity(25834 [CHEV]) 0.0900 $ \n",
2641 " Equity(26281 [OPHC]) 0.0000 NaN \n",
2642 " Equity(26348 [FFKY]) 0.0500 $ \n",
2643 " Equity(26420 [FCLF]) 0.0600 $ \n",
2644 " Equity(26484 [QCCO]) 0.0500 $ \n",
2645 " Equity(26914 [OSHC]) 0.0600 $ \n",
2646 " Equity(26990 [SMMF]) 0.0600 $ \n",
2647 " Equity(27082 [KFFB]) 0.1000 $ \n",
2648 " Equity(27513 [OFLX]) 1.0000 $ \n",
2649 " Equity(28256 [UCBA]) 0.0600 $ \n",
2650 " Equity(28305 [TRCB]) 0.0200 $ \n",
2651 " Equity(28613 [DVCR]) 0.0550 $ \n",
2652 " Equity(29090 [CZWI]) 0.0200 $ \n",
2653 " Equity(29152 [DNBF]) 0.0700 $ \n",
2654 " Equity(29353 [FBMS]) 0.0375 $ \n",
2655 " Equity(29723 [HUSA]) 0.2000 $ \n",
2656 " Equity(30955 [SSFN]) 0.0100 $ \n",
2657 " Equity(32347 [NECB]) 0.0300 $ \n",
2658 " Equity(32391 [SSBI]) 0.1100 $ \n",
2659 " Equity(32624 [PBIB]) 0.0100 $ \n",
2660 " Equity(32818 [SONA]) 0.0700 $ \n",
2661 " Equity(33132 [MSBF]) 0.0300 $ \n",
2662 " Equity(33774 [ATV]) 0.2300 $ \n",
2663 " Equity(35160 [EDS]) 0.0500 $ \n",
2664 " Equity(35396 [SFBC]) 0.0500 $ \n",
2665 " Equity(36240 [VRS]) 0.0300 $ \n",
2666 " Equity(41415 [ZX]) 0.0600 $ \n",
2667 " Equity(41893 [PBSK]) 0.0500 $ \n",
2668 "\n",
2669 " prev_ex_date prev_type \n",
2670 "2013-11-01 00:00:00+00:00 Equity(312 [ALOT]) 2013-09-11 No Change QoQ \n",
2671 " Equity(548 [ASBI]) 2013-10-02 Decrease \n",
2672 " Equity(717 [BAMM]) 2011-04-01 No Change QoQ \n",
2673 " Equity(925 [BKSC]) 2013-10-03 Increase \n",
2674 " Equity(1088 [BRID]) 2012-11-23 Special \n",
2675 " Equity(2526 [EML]) 2013-08-19 Increase \n",
2676 " Equity(3068 [FUNC]) 2010-10-11 No Change QoQ \n",
2677 " Equity(3353 [GROW]) 2013-10-03 No Change QoQ \n",
2678 " Equity(3536 [HFFC]) 2013-08-07 No Change QoQ \n",
2679 " Equity(4292 [KOSS]) 2013-09-26 No Change QoQ \n",
2680 " Equity(5859 [PEBK]) 2013-08-29 No Change QoQ \n",
2681 " Equity(6270 [PWX]) 2013-05-06 No Change QoQ \n",
2682 " Equity(6362 [RBPA_A]) 2008-04-28 No Change QoQ \n",
2683 " Equity(6483 [ARKR]) 2013-09-24 No Change QoQ \n",
2684 " Equity(6924 [SKY]) 2011-09-14 No Change QoQ \n",
2685 " Equity(7510 [PULS]) 2011-10-05 No Change QoQ \n",
2686 " Equity(7736 [UG]) 2013-05-28 Increase \n",
2687 " Equity(7899 [VALU]) 2013-10-24 No Change QoQ \n",
2688 " Equity(8759 [UBCP]) 2013-09-06 No Change QoQ \n",
2689 " Equity(9849 [TLF]) 2012-02-28 Special \n",
2690 " Equity(10034 [SAL]) 2013-08-07 No Change QoQ \n",
2691 " Equity(10833 [RGCO]) 2013-10-11 No Change QoQ \n",
2692 " Equity(10981 [LARK]) 2013-08-12 No Change QoQ \n",
2693 " Equity(11695 [THRD]) 2013-08-06 Increase \n",
2694 " Equity(12664 [FWV]) 2013-08-29 No Change QoQ \n",
2695 " Equity(12667 [ALLB]) 2013-08-07 No Change QoQ \n",
2696 " Equity(13499 [AUBN]) 2013-09-06 No Change QoQ \n",
2697 " Equity(14098 [LTRE]) 2010-08-18 Special \n",
2698 " Equity(14410 [OVBC]) 2013-10-23 No Change QoQ \n",
2699 " Equity(14996 [PFBI]) 2013-09-12 No Change QoQ \n",
2700 "... ... ... \n",
2701 "2013-11-25 00:00:00+00:00 Equity(25600 [LPHI]) 2013-09-13 No Change QoQ \n",
2702 " Equity(25785 [OLBK]) 2013-08-22 No Change QoQ \n",
2703 " Equity(25834 [CHEV]) 2013-09-11 No Change QoQ \n",
2704 " Equity(26281 [OPHC]) 2009-06-09 Stock \n",
2705 " Equity(26348 [FFKY]) 2009-09-11 Decrease \n",
2706 " Equity(26420 [FCLF]) 2013-11-13 No Change QoQ \n",
2707 " Equity(26484 [QCCO]) 2013-08-20 No Change QoQ \n",
2708 " Equity(26914 [OSHC]) 2013-11-06 No Change QoQ \n",
2709 " Equity(26990 [SMMF]) 2009-05-28 Decrease \n",
2710 " Equity(27082 [KFFB]) 2013-10-29 No Change QoQ \n",
2711 " Equity(27513 [OFLX]) 2012-11-28 Special \n",
2712 " Equity(28256 [UCBA]) 2013-11-06 No Change QoQ \n",
2713 " Equity(28305 [TRCB]) 2013-11-06 No Change QoQ \n",
2714 " Equity(28613 [DVCR]) 2013-09-26 No Change QoQ \n",
2715 " Equity(29090 [CZWI]) 2013-04-02 Initiation \n",
2716 " Equity(29152 [DNBF]) 2013-09-06 No Change QoQ \n",
2717 " Equity(29353 [FBMS]) 2013-11-08 No Change QoQ \n",
2718 " Equity(29723 [HUSA]) 2010-12-15 Special \n",
2719 " Equity(30955 [SSFN]) 2013-10-30 No Change QoQ \n",
2720 " Equity(32347 [NECB]) 2013-10-09 No Change QoQ \n",
2721 " Equity(32391 [SSBI]) 2013-05-13 No Change QoQ \n",
2722 " Equity(32624 [PBIB]) 2011-06-15 No Change QoQ \n",
2723 " Equity(32818 [SONA]) 2013-11-08 No Change QoQ \n",
2724 " Equity(33132 [MSBF]) 2012-06-28 No Change QoQ \n",
2725 " Equity(33774 [ATV]) 2010-11-11 Special \n",
2726 " Equity(35160 [EDS]) 2008-08-13 No Change QoQ \n",
2727 " Equity(35396 [SFBC]) 2013-11-11 No Change QoQ \n",
2728 " Equity(36240 [VRS]) 2008-11-14 No Change QoQ \n",
2729 " Equity(41415 [ZX]) 2012-03-28 Initiation \n",
2730 " Equity(41893 [PBSK]) 2013-10-29 Increase \n",
2731 "\n",
2732 "[1538 rows x 8 columns]"
2733 ]
2734 },
2735 "execution_count": 41,
2736 "metadata": {},
2737 "output_type": "execute_result"
2738 }
2739 ],
2740 "source": [
2741 "# run_pipeline will show the output of your pipeline\n",
2742 "pipe_output = run_pipeline(pipe, start_date='2013-11-01', end_date='2013-11-25')\n",
2743 "pipe_output"
2744 ]
2745 },
2746 {
2747 "cell_type": "markdown",
2748 "metadata": {},
2749 "source": [
2750 "Taking what we've seen from above, let's see how we'd move that into the backtester."
2751 ]
2752 },
2753 {
2754 "cell_type": "code",
2755 "execution_count": 1,
2756 "metadata": {
2757 "collapsed": false
2758 },
2759 "outputs": [
2760 {
2761 "ename": "ImportError",
2762 "evalue": "cannot import name DividendsByExDate",
2763 "output_type": "error",
2764 "traceback": [
2765 "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
2766 "\u001b[1;31mImportError\u001b[0m Traceback (most recent call last)",
2767 "\u001b[1;32m<ipython-input-1-3168cdf5a6e5>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 7\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 8\u001b[0m \u001b[1;31m# Import the datasets available\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 9\u001b[1;33m from quantopian.pipeline.data.eventvestor import (\n\u001b[0m\u001b[0;32m 10\u001b[0m \u001b[0mDividendsByExDate\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 11\u001b[0m \u001b[0mDividendsByPayDate\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
2768 "\u001b[1;31mImportError\u001b[0m: cannot import name DividendsByExDate"
2769 ]
2770 }
2771 ],
2772 "source": [
2773 "# This section is only importable in the backtester\n",
2774 "from quantopian.algorithm import attach_pipeline, pipeline_output\n",
2775 "\n",
2776 "# General pipeline imports\n",
2777 "from quantopian.pipeline import Pipeline\n",
2778 "from quantopian.pipeline.factors import AverageDollarVolume\n",
2779 "\n",
2780 "# Import the datasets available\n",
2781 "from quantopian.pipeline.data.eventvestor import (\n",
2782 " DividendsByExDate,\n",
2783 " DividendsByPayDate,\n",
2784 " DividendsByAnnouncementDate,\n",
2785 ")\n",
2786 "from quantopian.pipeline.factors.eventvestor import (\n",
2787 " BusinessDaysSincePreviousExDate,\n",
2788 " BusinessDaysUntilNextExDate,\n",
2789 " BusinessDaysSinceDividendAnnouncement,\n",
2790 ")\n",
2791 "\n",
2792 "def make_pipeline():\n",
2793 " # Create our pipeline\n",
2794 " pipe = Pipeline()\n",
2795 " \n",
2796 " # Screen out penny stocks and low liquidity securities.\n",
2797 " dollar_volume = AverageDollarVolume(window_length=20)\n",
2798 " is_liquid = dollar_volume.rank(ascending=False) < 1000\n",
2799 " \n",
2800 " # Create the mask that we will use for our percentile methods.\n",
2801 " base_universe = (is_liquid)\n",
2802 "\n",
2803 " # Add pipeline factors\n",
2804 " pipe.add(DividendsByExDate.next_date.latest, 'next_ex_date')\n",
2805 " pipe.add(DividendsByExDate.previous_date.latest, 'prev_ex_date')\n",
2806 " pipe.add(DividendsByExDate.next_amount.latest, 'next_amount')\n",
2807 " pipe.add(DividendsByExDate.previous_amount.latest, 'prev_amount')\n",
2808 " pipe.add(DividendsByExDate.next_currency.latest, 'next_currency')\n",
2809 " pipe.add(DividendsByExDate.previous_currency.latest, 'prev_currency')\n",
2810 " pipe.add(DividendsByExDate.next_type.latest, 'next_type')\n",
2811 " pipe.add(DividendsByExDate.previous_type.latest, 'prev_type')\n",
2812 " pipe.add(BusinessDaysUntilNextExDate(), 'business_days')\n",
2813 "\n",
2814 " # Set our pipeline screens\n",
2815 " pipe.set_screen(is_liquid)\n",
2816 " return pipe\n",
2817 "\n",
2818 "def initialize(context):\n",
2819 " attach_pipeline(make_pipeline(), \"pipeline\")\n",
2820 " \n",
2821 "def before_trading_start(context, data):\n",
2822 " results = pipeline_output('pipeline')"
2823 ]
2824 },
2825 {
2826 "cell_type": "markdown",
2827 "metadata": {},
2828 "source": [
2829 "Now you can take that and begin to use it as a building block for your algorithms, for more examples on how to do that you can visit our <a href='https://www.quantopian.com/posts/pipeline-factor-library-for-data'>data pipeline factor library</a>"
2830 ]
2831 }
2832 ],
2833 "metadata": {
2834 "kernelspec": {
2835 "display_name": "Python 2",
2836 "language": "python",
2837 "name": "python2"
2838 },
2839 "language_info": {
2840 "codemirror_mode": {
2841 "name": "ipython",
2842 "version": 2
2843 },
2844 "file_extension": ".py",
2845 "mimetype": "text/x-python",
2846 "name": "python",
2847 "nbconvert_exporter": "python",
2848 "pygments_lexer": "ipython2",
2849 "version": "2.7.12"
2850 }
2851 },
2852 "nbformat": 4,
2853 "nbformat_minor": 0
2854 }