{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 读取数据\n",
    "data = pd.read_csv('./data/stock_day.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>open</th>\n",
       "      <th>high</th>\n",
       "      <th>close</th>\n",
       "      <th>low</th>\n",
       "      <th>volume</th>\n",
       "      <th>price_change</th>\n",
       "      <th>p_change</th>\n",
       "      <th>ma5</th>\n",
       "      <th>ma10</th>\n",
       "      <th>ma20</th>\n",
       "      <th>v_ma5</th>\n",
       "      <th>v_ma10</th>\n",
       "      <th>v_ma20</th>\n",
       "      <th>turnover</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-02-27</th>\n",
       "      <td>23.53</td>\n",
       "      <td>25.88</td>\n",
       "      <td>24.16</td>\n",
       "      <td>23.53</td>\n",
       "      <td>95578.03</td>\n",
       "      <td>0.63</td>\n",
       "      <td>2.68</td>\n",
       "      <td>22.942</td>\n",
       "      <td>22.142</td>\n",
       "      <td>22.875</td>\n",
       "      <td>53782.64</td>\n",
       "      <td>46738.65</td>\n",
       "      <td>55576.11</td>\n",
       "      <td>2.39</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-26</th>\n",
       "      <td>22.80</td>\n",
       "      <td>23.78</td>\n",
       "      <td>23.53</td>\n",
       "      <td>22.80</td>\n",
       "      <td>60985.11</td>\n",
       "      <td>0.69</td>\n",
       "      <td>3.02</td>\n",
       "      <td>22.406</td>\n",
       "      <td>21.955</td>\n",
       "      <td>22.942</td>\n",
       "      <td>40827.52</td>\n",
       "      <td>42736.34</td>\n",
       "      <td>56007.50</td>\n",
       "      <td>1.53</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-23</th>\n",
       "      <td>22.88</td>\n",
       "      <td>23.37</td>\n",
       "      <td>22.82</td>\n",
       "      <td>22.71</td>\n",
       "      <td>52914.01</td>\n",
       "      <td>0.54</td>\n",
       "      <td>2.42</td>\n",
       "      <td>21.938</td>\n",
       "      <td>21.929</td>\n",
       "      <td>23.022</td>\n",
       "      <td>35119.58</td>\n",
       "      <td>41871.97</td>\n",
       "      <td>56372.85</td>\n",
       "      <td>1.32</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-22</th>\n",
       "      <td>22.25</td>\n",
       "      <td>22.76</td>\n",
       "      <td>22.28</td>\n",
       "      <td>22.02</td>\n",
       "      <td>36105.01</td>\n",
       "      <td>0.36</td>\n",
       "      <td>1.64</td>\n",
       "      <td>21.446</td>\n",
       "      <td>21.909</td>\n",
       "      <td>23.137</td>\n",
       "      <td>35397.58</td>\n",
       "      <td>39904.78</td>\n",
       "      <td>60149.60</td>\n",
       "      <td>0.90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-14</th>\n",
       "      <td>21.49</td>\n",
       "      <td>21.99</td>\n",
       "      <td>21.92</td>\n",
       "      <td>21.48</td>\n",
       "      <td>23331.04</td>\n",
       "      <td>0.44</td>\n",
       "      <td>2.05</td>\n",
       "      <td>21.366</td>\n",
       "      <td>21.923</td>\n",
       "      <td>23.253</td>\n",
       "      <td>33590.21</td>\n",
       "      <td>42935.74</td>\n",
       "      <td>61716.11</td>\n",
       "      <td>0.58</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             open   high  close    low    volume  price_change  p_change  \\\n",
       "2018-02-27  23.53  25.88  24.16  23.53  95578.03          0.63      2.68   \n",
       "2018-02-26  22.80  23.78  23.53  22.80  60985.11          0.69      3.02   \n",
       "2018-02-23  22.88  23.37  22.82  22.71  52914.01          0.54      2.42   \n",
       "2018-02-22  22.25  22.76  22.28  22.02  36105.01          0.36      1.64   \n",
       "2018-02-14  21.49  21.99  21.92  21.48  23331.04          0.44      2.05   \n",
       "\n",
       "               ma5    ma10    ma20     v_ma5    v_ma10    v_ma20  turnover  \n",
       "2018-02-27  22.942  22.142  22.875  53782.64  46738.65  55576.11      2.39  \n",
       "2018-02-26  22.406  21.955  22.942  40827.52  42736.34  56007.50      1.53  \n",
       "2018-02-23  21.938  21.929  23.022  35119.58  41871.97  56372.85      1.32  \n",
       "2018-02-22  21.446  21.909  23.137  35397.58  39904.78  60149.60      0.90  \n",
       "2018-02-14  21.366  21.923  23.253  33590.21  42935.74  61716.11      0.58  "
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2018-02-27    24.16\n",
       "2018-02-26    23.53\n",
       "2018-02-23    22.82\n",
       "2018-02-22    22.28\n",
       "2018-02-14    21.92\n",
       "Name: close, dtype: float64"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 通过中括号索引\n",
    "data['close'].head()   # Series"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "22.82"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data['close']['2018-02-23']  # 先列后行"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "close    22.82\n",
       "low      22.71\n",
       "Name: 2018-02-23, dtype: float64"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 通过loc索引  用行列名字来索引\n",
    "data.loc['2018-02-23','close':'low']  # Series\n",
    "\n",
    "# 通过iloc索引  用下标来索引\n",
    "data.iloc[2,2:]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 排序操作"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>open</th>\n",
       "      <th>high</th>\n",
       "      <th>close</th>\n",
       "      <th>low</th>\n",
       "      <th>volume</th>\n",
       "      <th>price_change</th>\n",
       "      <th>p_change</th>\n",
       "      <th>ma5</th>\n",
       "      <th>ma10</th>\n",
       "      <th>ma20</th>\n",
       "      <th>v_ma5</th>\n",
       "      <th>v_ma10</th>\n",
       "      <th>v_ma20</th>\n",
       "      <th>turnover</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-02-27</th>\n",
       "      <td>23.53</td>\n",
       "      <td>25.88</td>\n",
       "      <td>24.16</td>\n",
       "      <td>23.53</td>\n",
       "      <td>95578.03</td>\n",
       "      <td>0.63</td>\n",
       "      <td>2.68</td>\n",
       "      <td>22.942</td>\n",
       "      <td>22.142</td>\n",
       "      <td>22.875</td>\n",
       "      <td>53782.64</td>\n",
       "      <td>46738.65</td>\n",
       "      <td>55576.11</td>\n",
       "      <td>2.39</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-26</th>\n",
       "      <td>22.80</td>\n",
       "      <td>23.78</td>\n",
       "      <td>23.53</td>\n",
       "      <td>22.80</td>\n",
       "      <td>60985.11</td>\n",
       "      <td>0.69</td>\n",
       "      <td>3.02</td>\n",
       "      <td>22.406</td>\n",
       "      <td>21.955</td>\n",
       "      <td>22.942</td>\n",
       "      <td>40827.52</td>\n",
       "      <td>42736.34</td>\n",
       "      <td>56007.50</td>\n",
       "      <td>1.53</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-23</th>\n",
       "      <td>22.88</td>\n",
       "      <td>23.37</td>\n",
       "      <td>22.82</td>\n",
       "      <td>22.71</td>\n",
       "      <td>52914.01</td>\n",
       "      <td>0.54</td>\n",
       "      <td>2.42</td>\n",
       "      <td>21.938</td>\n",
       "      <td>21.929</td>\n",
       "      <td>23.022</td>\n",
       "      <td>35119.58</td>\n",
       "      <td>41871.97</td>\n",
       "      <td>56372.85</td>\n",
       "      <td>1.32</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-22</th>\n",
       "      <td>22.25</td>\n",
       "      <td>22.76</td>\n",
       "      <td>22.28</td>\n",
       "      <td>22.02</td>\n",
       "      <td>36105.01</td>\n",
       "      <td>0.36</td>\n",
       "      <td>1.64</td>\n",
       "      <td>21.446</td>\n",
       "      <td>21.909</td>\n",
       "      <td>23.137</td>\n",
       "      <td>35397.58</td>\n",
       "      <td>39904.78</td>\n",
       "      <td>60149.60</td>\n",
       "      <td>0.90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-14</th>\n",
       "      <td>21.49</td>\n",
       "      <td>21.99</td>\n",
       "      <td>21.92</td>\n",
       "      <td>21.48</td>\n",
       "      <td>23331.04</td>\n",
       "      <td>0.44</td>\n",
       "      <td>2.05</td>\n",
       "      <td>21.366</td>\n",
       "      <td>21.923</td>\n",
       "      <td>23.253</td>\n",
       "      <td>33590.21</td>\n",
       "      <td>42935.74</td>\n",
       "      <td>61716.11</td>\n",
       "      <td>0.58</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             open   high  close    low    volume  price_change  p_change  \\\n",
       "2018-02-27  23.53  25.88  24.16  23.53  95578.03          0.63      2.68   \n",
       "2018-02-26  22.80  23.78  23.53  22.80  60985.11          0.69      3.02   \n",
       "2018-02-23  22.88  23.37  22.82  22.71  52914.01          0.54      2.42   \n",
       "2018-02-22  22.25  22.76  22.28  22.02  36105.01          0.36      1.64   \n",
       "2018-02-14  21.49  21.99  21.92  21.48  23331.04          0.44      2.05   \n",
       "\n",
       "               ma5    ma10    ma20     v_ma5    v_ma10    v_ma20  turnover  \n",
       "2018-02-27  22.942  22.142  22.875  53782.64  46738.65  55576.11      2.39  \n",
       "2018-02-26  22.406  21.955  22.942  40827.52  42736.34  56007.50      1.53  \n",
       "2018-02-23  21.938  21.929  23.022  35119.58  41871.97  56372.85      1.32  \n",
       "2018-02-22  21.446  21.909  23.137  35397.58  39904.78  60149.60      0.90  \n",
       "2018-02-14  21.366  21.923  23.253  33590.21  42935.74  61716.11      0.58  "
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>open</th>\n",
       "      <th>high</th>\n",
       "      <th>close</th>\n",
       "      <th>low</th>\n",
       "      <th>volume</th>\n",
       "      <th>price_change</th>\n",
       "      <th>p_change</th>\n",
       "      <th>ma5</th>\n",
       "      <th>ma10</th>\n",
       "      <th>ma20</th>\n",
       "      <th>v_ma5</th>\n",
       "      <th>v_ma10</th>\n",
       "      <th>v_ma20</th>\n",
       "      <th>turnover</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2015-09-01</th>\n",
       "      <td>14.78</td>\n",
       "      <td>14.78</td>\n",
       "      <td>13.46</td>\n",
       "      <td>13.46</td>\n",
       "      <td>78985.85</td>\n",
       "      <td>-1.50</td>\n",
       "      <td>-10.03</td>\n",
       "      <td>15.080</td>\n",
       "      <td>17.434</td>\n",
       "      <td>18.617</td>\n",
       "      <td>109001.30</td>\n",
       "      <td>103741.22</td>\n",
       "      <td>106218.95</td>\n",
       "      <td>2.70</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-09-14</th>\n",
       "      <td>16.62</td>\n",
       "      <td>16.64</td>\n",
       "      <td>14.46</td>\n",
       "      <td>14.46</td>\n",
       "      <td>139701.77</td>\n",
       "      <td>-1.61</td>\n",
       "      <td>-10.02</td>\n",
       "      <td>14.726</td>\n",
       "      <td>14.363</td>\n",
       "      <td>16.881</td>\n",
       "      <td>98449.69</td>\n",
       "      <td>89159.54</td>\n",
       "      <td>101431.96</td>\n",
       "      <td>4.78</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-01-11</th>\n",
       "      <td>16.59</td>\n",
       "      <td>17.24</td>\n",
       "      <td>15.90</td>\n",
       "      <td>15.90</td>\n",
       "      <td>58036.37</td>\n",
       "      <td>-1.77</td>\n",
       "      <td>-10.02</td>\n",
       "      <td>18.298</td>\n",
       "      <td>20.068</td>\n",
       "      <td>21.648</td>\n",
       "      <td>46971.51</td>\n",
       "      <td>52066.53</td>\n",
       "      <td>58356.88</td>\n",
       "      <td>1.99</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-07-15</th>\n",
       "      <td>22.78</td>\n",
       "      <td>23.04</td>\n",
       "      <td>22.10</td>\n",
       "      <td>22.10</td>\n",
       "      <td>85966.42</td>\n",
       "      <td>-2.46</td>\n",
       "      <td>-10.02</td>\n",
       "      <td>24.564</td>\n",
       "      <td>25.197</td>\n",
       "      <td>28.530</td>\n",
       "      <td>158767.95</td>\n",
       "      <td>149753.04</td>\n",
       "      <td>149835.16</td>\n",
       "      <td>2.94</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-08-26</th>\n",
       "      <td>17.00</td>\n",
       "      <td>18.35</td>\n",
       "      <td>15.56</td>\n",
       "      <td>15.56</td>\n",
       "      <td>130318.31</td>\n",
       "      <td>-1.73</td>\n",
       "      <td>-10.01</td>\n",
       "      <td>18.742</td>\n",
       "      <td>20.042</td>\n",
       "      <td>19.087</td>\n",
       "      <td>100097.45</td>\n",
       "      <td>114432.06</td>\n",
       "      <td>102945.90</td>\n",
       "      <td>4.46</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             open   high  close    low     volume  price_change  p_change  \\\n",
       "2015-09-01  14.78  14.78  13.46  13.46   78985.85         -1.50    -10.03   \n",
       "2015-09-14  16.62  16.64  14.46  14.46  139701.77         -1.61    -10.02   \n",
       "2016-01-11  16.59  17.24  15.90  15.90   58036.37         -1.77    -10.02   \n",
       "2015-07-15  22.78  23.04  22.10  22.10   85966.42         -2.46    -10.02   \n",
       "2015-08-26  17.00  18.35  15.56  15.56  130318.31         -1.73    -10.01   \n",
       "\n",
       "               ma5    ma10    ma20      v_ma5     v_ma10     v_ma20  turnover  \n",
       "2015-09-01  15.080  17.434  18.617  109001.30  103741.22  106218.95      2.70  \n",
       "2015-09-14  14.726  14.363  16.881   98449.69   89159.54  101431.96      4.78  \n",
       "2016-01-11  18.298  20.068  21.648   46971.51   52066.53   58356.88      1.99  \n",
       "2015-07-15  24.564  25.197  28.530  158767.95  149753.04  149835.16      2.94  \n",
       "2015-08-26  18.742  20.042  19.087  100097.45  114432.06  102945.90      4.46  "
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 按照p_change从小到大排序\n",
    "data.sort_values(by='p_change', ascending=True).head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>open</th>\n",
       "      <th>high</th>\n",
       "      <th>close</th>\n",
       "      <th>low</th>\n",
       "      <th>volume</th>\n",
       "      <th>price_change</th>\n",
       "      <th>p_change</th>\n",
       "      <th>ma5</th>\n",
       "      <th>ma10</th>\n",
       "      <th>ma20</th>\n",
       "      <th>v_ma5</th>\n",
       "      <th>v_ma10</th>\n",
       "      <th>v_ma20</th>\n",
       "      <th>turnover</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-02-27</th>\n",
       "      <td>23.53</td>\n",
       "      <td>25.88</td>\n",
       "      <td>24.16</td>\n",
       "      <td>23.53</td>\n",
       "      <td>95578.03</td>\n",
       "      <td>0.63</td>\n",
       "      <td>2.68</td>\n",
       "      <td>22.942</td>\n",
       "      <td>22.142</td>\n",
       "      <td>22.875</td>\n",
       "      <td>53782.64</td>\n",
       "      <td>46738.65</td>\n",
       "      <td>55576.11</td>\n",
       "      <td>2.39</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-26</th>\n",
       "      <td>22.80</td>\n",
       "      <td>23.78</td>\n",
       "      <td>23.53</td>\n",
       "      <td>22.80</td>\n",
       "      <td>60985.11</td>\n",
       "      <td>0.69</td>\n",
       "      <td>3.02</td>\n",
       "      <td>22.406</td>\n",
       "      <td>21.955</td>\n",
       "      <td>22.942</td>\n",
       "      <td>40827.52</td>\n",
       "      <td>42736.34</td>\n",
       "      <td>56007.50</td>\n",
       "      <td>1.53</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-23</th>\n",
       "      <td>22.88</td>\n",
       "      <td>23.37</td>\n",
       "      <td>22.82</td>\n",
       "      <td>22.71</td>\n",
       "      <td>52914.01</td>\n",
       "      <td>0.54</td>\n",
       "      <td>2.42</td>\n",
       "      <td>21.938</td>\n",
       "      <td>21.929</td>\n",
       "      <td>23.022</td>\n",
       "      <td>35119.58</td>\n",
       "      <td>41871.97</td>\n",
       "      <td>56372.85</td>\n",
       "      <td>1.32</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-22</th>\n",
       "      <td>22.25</td>\n",
       "      <td>22.76</td>\n",
       "      <td>22.28</td>\n",
       "      <td>22.02</td>\n",
       "      <td>36105.01</td>\n",
       "      <td>0.36</td>\n",
       "      <td>1.64</td>\n",
       "      <td>21.446</td>\n",
       "      <td>21.909</td>\n",
       "      <td>23.137</td>\n",
       "      <td>35397.58</td>\n",
       "      <td>39904.78</td>\n",
       "      <td>60149.60</td>\n",
       "      <td>0.90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-14</th>\n",
       "      <td>21.49</td>\n",
       "      <td>21.99</td>\n",
       "      <td>21.92</td>\n",
       "      <td>21.48</td>\n",
       "      <td>23331.04</td>\n",
       "      <td>0.44</td>\n",
       "      <td>2.05</td>\n",
       "      <td>21.366</td>\n",
       "      <td>21.923</td>\n",
       "      <td>23.253</td>\n",
       "      <td>33590.21</td>\n",
       "      <td>42935.74</td>\n",
       "      <td>61716.11</td>\n",
       "      <td>0.58</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             open   high  close    low    volume  price_change  p_change  \\\n",
       "2018-02-27  23.53  25.88  24.16  23.53  95578.03          0.63      2.68   \n",
       "2018-02-26  22.80  23.78  23.53  22.80  60985.11          0.69      3.02   \n",
       "2018-02-23  22.88  23.37  22.82  22.71  52914.01          0.54      2.42   \n",
       "2018-02-22  22.25  22.76  22.28  22.02  36105.01          0.36      1.64   \n",
       "2018-02-14  21.49  21.99  21.92  21.48  23331.04          0.44      2.05   \n",
       "\n",
       "               ma5    ma10    ma20     v_ma5    v_ma10    v_ma20  turnover  \n",
       "2018-02-27  22.942  22.142  22.875  53782.64  46738.65  55576.11      2.39  \n",
       "2018-02-26  22.406  21.955  22.942  40827.52  42736.34  56007.50      1.53  \n",
       "2018-02-23  21.938  21.929  23.022  35119.58  41871.97  56372.85      1.32  \n",
       "2018-02-22  21.446  21.909  23.137  35397.58  39904.78  60149.60      0.90  \n",
       "2018-02-14  21.366  21.923  23.253  33590.21  42935.74  61716.11      0.58  "
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 按照索引排序\n",
    "data.sort_index(ascending=False).head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 算术运算"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>open</th>\n",
       "      <th>high</th>\n",
       "      <th>close</th>\n",
       "      <th>low</th>\n",
       "      <th>volume</th>\n",
       "      <th>price_change</th>\n",
       "      <th>p_change</th>\n",
       "      <th>ma5</th>\n",
       "      <th>ma10</th>\n",
       "      <th>ma20</th>\n",
       "      <th>v_ma5</th>\n",
       "      <th>v_ma10</th>\n",
       "      <th>v_ma20</th>\n",
       "      <th>turnover</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-02-27</th>\n",
       "      <td>23.53</td>\n",
       "      <td>25.88</td>\n",
       "      <td>24.16</td>\n",
       "      <td>23.53</td>\n",
       "      <td>95578.03</td>\n",
       "      <td>0.63</td>\n",
       "      <td>2.68</td>\n",
       "      <td>22.942</td>\n",
       "      <td>22.142</td>\n",
       "      <td>22.875</td>\n",
       "      <td>53782.64</td>\n",
       "      <td>46738.65</td>\n",
       "      <td>55576.11</td>\n",
       "      <td>2.39</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-26</th>\n",
       "      <td>22.80</td>\n",
       "      <td>23.78</td>\n",
       "      <td>23.53</td>\n",
       "      <td>22.80</td>\n",
       "      <td>60985.11</td>\n",
       "      <td>0.69</td>\n",
       "      <td>3.02</td>\n",
       "      <td>22.406</td>\n",
       "      <td>21.955</td>\n",
       "      <td>22.942</td>\n",
       "      <td>40827.52</td>\n",
       "      <td>42736.34</td>\n",
       "      <td>56007.50</td>\n",
       "      <td>1.53</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-23</th>\n",
       "      <td>22.88</td>\n",
       "      <td>23.37</td>\n",
       "      <td>22.82</td>\n",
       "      <td>22.71</td>\n",
       "      <td>52914.01</td>\n",
       "      <td>0.54</td>\n",
       "      <td>2.42</td>\n",
       "      <td>21.938</td>\n",
       "      <td>21.929</td>\n",
       "      <td>23.022</td>\n",
       "      <td>35119.58</td>\n",
       "      <td>41871.97</td>\n",
       "      <td>56372.85</td>\n",
       "      <td>1.32</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-22</th>\n",
       "      <td>22.25</td>\n",
       "      <td>22.76</td>\n",
       "      <td>22.28</td>\n",
       "      <td>22.02</td>\n",
       "      <td>36105.01</td>\n",
       "      <td>0.36</td>\n",
       "      <td>1.64</td>\n",
       "      <td>21.446</td>\n",
       "      <td>21.909</td>\n",
       "      <td>23.137</td>\n",
       "      <td>35397.58</td>\n",
       "      <td>39904.78</td>\n",
       "      <td>60149.60</td>\n",
       "      <td>0.90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-14</th>\n",
       "      <td>21.49</td>\n",
       "      <td>21.99</td>\n",
       "      <td>21.92</td>\n",
       "      <td>21.48</td>\n",
       "      <td>23331.04</td>\n",
       "      <td>0.44</td>\n",
       "      <td>2.05</td>\n",
       "      <td>21.366</td>\n",
       "      <td>21.923</td>\n",
       "      <td>23.253</td>\n",
       "      <td>33590.21</td>\n",
       "      <td>42935.74</td>\n",
       "      <td>61716.11</td>\n",
       "      <td>0.58</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             open   high  close    low    volume  price_change  p_change  \\\n",
       "2018-02-27  23.53  25.88  24.16  23.53  95578.03          0.63      2.68   \n",
       "2018-02-26  22.80  23.78  23.53  22.80  60985.11          0.69      3.02   \n",
       "2018-02-23  22.88  23.37  22.82  22.71  52914.01          0.54      2.42   \n",
       "2018-02-22  22.25  22.76  22.28  22.02  36105.01          0.36      1.64   \n",
       "2018-02-14  21.49  21.99  21.92  21.48  23331.04          0.44      2.05   \n",
       "\n",
       "               ma5    ma10    ma20     v_ma5    v_ma10    v_ma20  turnover  \n",
       "2018-02-27  22.942  22.142  22.875  53782.64  46738.65  55576.11      2.39  \n",
       "2018-02-26  22.406  21.955  22.942  40827.52  42736.34  56007.50      1.53  \n",
       "2018-02-23  21.938  21.929  23.022  35119.58  41871.97  56372.85      1.32  \n",
       "2018-02-22  21.446  21.909  23.137  35397.58  39904.78  60149.60      0.90  \n",
       "2018-02-14  21.366  21.923  23.253  33590.21  42935.74  61716.11      0.58  "
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2018-02-27    47.69\n",
       "2018-02-26    46.33\n",
       "2018-02-23    45.53\n",
       "2018-02-22    44.30\n",
       "2018-02-14    43.40\n",
       "dtype: float64"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data['low'].add(data['close']).head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 逻辑运算"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [],
   "source": [
    "temp = data['p_change'] > 0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>open</th>\n",
       "      <th>high</th>\n",
       "      <th>close</th>\n",
       "      <th>low</th>\n",
       "      <th>volume</th>\n",
       "      <th>price_change</th>\n",
       "      <th>p_change</th>\n",
       "      <th>ma5</th>\n",
       "      <th>ma10</th>\n",
       "      <th>ma20</th>\n",
       "      <th>v_ma5</th>\n",
       "      <th>v_ma10</th>\n",
       "      <th>v_ma20</th>\n",
       "      <th>turnover</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-02-27</th>\n",
       "      <td>23.53</td>\n",
       "      <td>25.88</td>\n",
       "      <td>24.16</td>\n",
       "      <td>23.53</td>\n",
       "      <td>95578.03</td>\n",
       "      <td>0.63</td>\n",
       "      <td>2.68</td>\n",
       "      <td>22.942</td>\n",
       "      <td>22.142</td>\n",
       "      <td>22.875</td>\n",
       "      <td>53782.64</td>\n",
       "      <td>46738.65</td>\n",
       "      <td>55576.11</td>\n",
       "      <td>2.39</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-26</th>\n",
       "      <td>22.80</td>\n",
       "      <td>23.78</td>\n",
       "      <td>23.53</td>\n",
       "      <td>22.80</td>\n",
       "      <td>60985.11</td>\n",
       "      <td>0.69</td>\n",
       "      <td>3.02</td>\n",
       "      <td>22.406</td>\n",
       "      <td>21.955</td>\n",
       "      <td>22.942</td>\n",
       "      <td>40827.52</td>\n",
       "      <td>42736.34</td>\n",
       "      <td>56007.50</td>\n",
       "      <td>1.53</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-23</th>\n",
       "      <td>22.88</td>\n",
       "      <td>23.37</td>\n",
       "      <td>22.82</td>\n",
       "      <td>22.71</td>\n",
       "      <td>52914.01</td>\n",
       "      <td>0.54</td>\n",
       "      <td>2.42</td>\n",
       "      <td>21.938</td>\n",
       "      <td>21.929</td>\n",
       "      <td>23.022</td>\n",
       "      <td>35119.58</td>\n",
       "      <td>41871.97</td>\n",
       "      <td>56372.85</td>\n",
       "      <td>1.32</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-22</th>\n",
       "      <td>22.25</td>\n",
       "      <td>22.76</td>\n",
       "      <td>22.28</td>\n",
       "      <td>22.02</td>\n",
       "      <td>36105.01</td>\n",
       "      <td>0.36</td>\n",
       "      <td>1.64</td>\n",
       "      <td>21.446</td>\n",
       "      <td>21.909</td>\n",
       "      <td>23.137</td>\n",
       "      <td>35397.58</td>\n",
       "      <td>39904.78</td>\n",
       "      <td>60149.60</td>\n",
       "      <td>0.90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-14</th>\n",
       "      <td>21.49</td>\n",
       "      <td>21.99</td>\n",
       "      <td>21.92</td>\n",
       "      <td>21.48</td>\n",
       "      <td>23331.04</td>\n",
       "      <td>0.44</td>\n",
       "      <td>2.05</td>\n",
       "      <td>21.366</td>\n",
       "      <td>21.923</td>\n",
       "      <td>23.253</td>\n",
       "      <td>33590.21</td>\n",
       "      <td>42935.74</td>\n",
       "      <td>61716.11</td>\n",
       "      <td>0.58</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             open   high  close    low    volume  price_change  p_change  \\\n",
       "2018-02-27  23.53  25.88  24.16  23.53  95578.03          0.63      2.68   \n",
       "2018-02-26  22.80  23.78  23.53  22.80  60985.11          0.69      3.02   \n",
       "2018-02-23  22.88  23.37  22.82  22.71  52914.01          0.54      2.42   \n",
       "2018-02-22  22.25  22.76  22.28  22.02  36105.01          0.36      1.64   \n",
       "2018-02-14  21.49  21.99  21.92  21.48  23331.04          0.44      2.05   \n",
       "\n",
       "               ma5    ma10    ma20     v_ma5    v_ma10    v_ma20  turnover  \n",
       "2018-02-27  22.942  22.142  22.875  53782.64  46738.65  55576.11      2.39  \n",
       "2018-02-26  22.406  21.955  22.942  40827.52  42736.34  56007.50      1.53  \n",
       "2018-02-23  21.938  21.929  23.022  35119.58  41871.97  56372.85      1.32  \n",
       "2018-02-22  21.446  21.909  23.137  35397.58  39904.78  60149.60      0.90  \n",
       "2018-02-14  21.366  21.923  23.253  33590.21  42935.74  61716.11      0.58  "
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 布尔索引\n",
    "data[temp].head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>open</th>\n",
       "      <th>high</th>\n",
       "      <th>close</th>\n",
       "      <th>low</th>\n",
       "      <th>volume</th>\n",
       "      <th>price_change</th>\n",
       "      <th>p_change</th>\n",
       "      <th>ma5</th>\n",
       "      <th>ma10</th>\n",
       "      <th>ma20</th>\n",
       "      <th>v_ma5</th>\n",
       "      <th>v_ma10</th>\n",
       "      <th>v_ma20</th>\n",
       "      <th>turnover</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-02-27</th>\n",
       "      <td>23.53</td>\n",
       "      <td>25.88</td>\n",
       "      <td>24.16</td>\n",
       "      <td>23.53</td>\n",
       "      <td>95578.03</td>\n",
       "      <td>0.63</td>\n",
       "      <td>2.68</td>\n",
       "      <td>22.942</td>\n",
       "      <td>22.142</td>\n",
       "      <td>22.875</td>\n",
       "      <td>53782.64</td>\n",
       "      <td>46738.65</td>\n",
       "      <td>55576.11</td>\n",
       "      <td>2.39</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-26</th>\n",
       "      <td>22.80</td>\n",
       "      <td>23.78</td>\n",
       "      <td>23.53</td>\n",
       "      <td>22.80</td>\n",
       "      <td>60985.11</td>\n",
       "      <td>0.69</td>\n",
       "      <td>3.02</td>\n",
       "      <td>22.406</td>\n",
       "      <td>21.955</td>\n",
       "      <td>22.942</td>\n",
       "      <td>40827.52</td>\n",
       "      <td>42736.34</td>\n",
       "      <td>56007.50</td>\n",
       "      <td>1.53</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-23</th>\n",
       "      <td>22.88</td>\n",
       "      <td>23.37</td>\n",
       "      <td>22.82</td>\n",
       "      <td>22.71</td>\n",
       "      <td>52914.01</td>\n",
       "      <td>0.54</td>\n",
       "      <td>2.42</td>\n",
       "      <td>21.938</td>\n",
       "      <td>21.929</td>\n",
       "      <td>23.022</td>\n",
       "      <td>35119.58</td>\n",
       "      <td>41871.97</td>\n",
       "      <td>56372.85</td>\n",
       "      <td>1.32</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-14</th>\n",
       "      <td>21.49</td>\n",
       "      <td>21.99</td>\n",
       "      <td>21.92</td>\n",
       "      <td>21.48</td>\n",
       "      <td>23331.04</td>\n",
       "      <td>0.44</td>\n",
       "      <td>2.05</td>\n",
       "      <td>21.366</td>\n",
       "      <td>21.923</td>\n",
       "      <td>23.253</td>\n",
       "      <td>33590.21</td>\n",
       "      <td>42935.74</td>\n",
       "      <td>61716.11</td>\n",
       "      <td>0.58</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-12</th>\n",
       "      <td>20.70</td>\n",
       "      <td>21.40</td>\n",
       "      <td>21.19</td>\n",
       "      <td>20.63</td>\n",
       "      <td>32445.39</td>\n",
       "      <td>0.82</td>\n",
       "      <td>4.03</td>\n",
       "      <td>21.504</td>\n",
       "      <td>22.338</td>\n",
       "      <td>23.533</td>\n",
       "      <td>44645.16</td>\n",
       "      <td>45679.94</td>\n",
       "      <td>68686.33</td>\n",
       "      <td>0.81</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             open   high  close    low    volume  price_change  p_change  \\\n",
       "2018-02-27  23.53  25.88  24.16  23.53  95578.03          0.63      2.68   \n",
       "2018-02-26  22.80  23.78  23.53  22.80  60985.11          0.69      3.02   \n",
       "2018-02-23  22.88  23.37  22.82  22.71  52914.01          0.54      2.42   \n",
       "2018-02-14  21.49  21.99  21.92  21.48  23331.04          0.44      2.05   \n",
       "2018-02-12  20.70  21.40  21.19  20.63  32445.39          0.82      4.03   \n",
       "\n",
       "               ma5    ma10    ma20     v_ma5    v_ma10    v_ma20  turnover  \n",
       "2018-02-27  22.942  22.142  22.875  53782.64  46738.65  55576.11      2.39  \n",
       "2018-02-26  22.406  21.955  22.942  40827.52  42736.34  56007.50      1.53  \n",
       "2018-02-23  21.938  21.929  23.022  35119.58  41871.97  56372.85      1.32  \n",
       "2018-02-14  21.366  21.923  23.253  33590.21  42935.74  61716.11      0.58  \n",
       "2018-02-12  21.504  22.338  23.533  44645.16  45679.94  68686.33      0.81  "
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 完成一个多个逻辑判断， 筛选p_change > 2并且open > 15\n",
    "data[(data['p_change'] >2) & (data['open'] >15)].head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>open</th>\n",
       "      <th>high</th>\n",
       "      <th>close</th>\n",
       "      <th>low</th>\n",
       "      <th>volume</th>\n",
       "      <th>price_change</th>\n",
       "      <th>p_change</th>\n",
       "      <th>ma5</th>\n",
       "      <th>ma10</th>\n",
       "      <th>ma20</th>\n",
       "      <th>v_ma5</th>\n",
       "      <th>v_ma10</th>\n",
       "      <th>v_ma20</th>\n",
       "      <th>turnover</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-02-27</th>\n",
       "      <td>23.53</td>\n",
       "      <td>25.88</td>\n",
       "      <td>24.16</td>\n",
       "      <td>23.53</td>\n",
       "      <td>95578.03</td>\n",
       "      <td>0.63</td>\n",
       "      <td>2.68</td>\n",
       "      <td>22.942</td>\n",
       "      <td>22.142</td>\n",
       "      <td>22.875</td>\n",
       "      <td>53782.64</td>\n",
       "      <td>46738.65</td>\n",
       "      <td>55576.11</td>\n",
       "      <td>2.39</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-26</th>\n",
       "      <td>22.80</td>\n",
       "      <td>23.78</td>\n",
       "      <td>23.53</td>\n",
       "      <td>22.80</td>\n",
       "      <td>60985.11</td>\n",
       "      <td>0.69</td>\n",
       "      <td>3.02</td>\n",
       "      <td>22.406</td>\n",
       "      <td>21.955</td>\n",
       "      <td>22.942</td>\n",
       "      <td>40827.52</td>\n",
       "      <td>42736.34</td>\n",
       "      <td>56007.50</td>\n",
       "      <td>1.53</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-23</th>\n",
       "      <td>22.88</td>\n",
       "      <td>23.37</td>\n",
       "      <td>22.82</td>\n",
       "      <td>22.71</td>\n",
       "      <td>52914.01</td>\n",
       "      <td>0.54</td>\n",
       "      <td>2.42</td>\n",
       "      <td>21.938</td>\n",
       "      <td>21.929</td>\n",
       "      <td>23.022</td>\n",
       "      <td>35119.58</td>\n",
       "      <td>41871.97</td>\n",
       "      <td>56372.85</td>\n",
       "      <td>1.32</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-14</th>\n",
       "      <td>21.49</td>\n",
       "      <td>21.99</td>\n",
       "      <td>21.92</td>\n",
       "      <td>21.48</td>\n",
       "      <td>23331.04</td>\n",
       "      <td>0.44</td>\n",
       "      <td>2.05</td>\n",
       "      <td>21.366</td>\n",
       "      <td>21.923</td>\n",
       "      <td>23.253</td>\n",
       "      <td>33590.21</td>\n",
       "      <td>42935.74</td>\n",
       "      <td>61716.11</td>\n",
       "      <td>0.58</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-12</th>\n",
       "      <td>20.70</td>\n",
       "      <td>21.40</td>\n",
       "      <td>21.19</td>\n",
       "      <td>20.63</td>\n",
       "      <td>32445.39</td>\n",
       "      <td>0.82</td>\n",
       "      <td>4.03</td>\n",
       "      <td>21.504</td>\n",
       "      <td>22.338</td>\n",
       "      <td>23.533</td>\n",
       "      <td>44645.16</td>\n",
       "      <td>45679.94</td>\n",
       "      <td>68686.33</td>\n",
       "      <td>0.81</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             open   high  close    low    volume  price_change  p_change  \\\n",
       "2018-02-27  23.53  25.88  24.16  23.53  95578.03          0.63      2.68   \n",
       "2018-02-26  22.80  23.78  23.53  22.80  60985.11          0.69      3.02   \n",
       "2018-02-23  22.88  23.37  22.82  22.71  52914.01          0.54      2.42   \n",
       "2018-02-14  21.49  21.99  21.92  21.48  23331.04          0.44      2.05   \n",
       "2018-02-12  20.70  21.40  21.19  20.63  32445.39          0.82      4.03   \n",
       "\n",
       "               ma5    ma10    ma20     v_ma5    v_ma10    v_ma20  turnover  \n",
       "2018-02-27  22.942  22.142  22.875  53782.64  46738.65  55576.11      2.39  \n",
       "2018-02-26  22.406  21.955  22.942  40827.52  42736.34  56007.50      1.53  \n",
       "2018-02-23  21.938  21.929  23.022  35119.58  41871.97  56372.85      1.32  \n",
       "2018-02-14  21.366  21.923  23.253  33590.21  42935.74  61716.11      0.58  \n",
       "2018-02-12  21.504  22.338  23.533  44645.16  45679.94  68686.33      0.81  "
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 使用query实现获取满足条件的样本\n",
    "data.query('p_change>2 & open>15').head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>open</th>\n",
       "      <th>high</th>\n",
       "      <th>close</th>\n",
       "      <th>low</th>\n",
       "      <th>volume</th>\n",
       "      <th>price_change</th>\n",
       "      <th>p_change</th>\n",
       "      <th>ma5</th>\n",
       "      <th>ma10</th>\n",
       "      <th>ma20</th>\n",
       "      <th>v_ma5</th>\n",
       "      <th>v_ma10</th>\n",
       "      <th>v_ma20</th>\n",
       "      <th>turnover</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-02-27</th>\n",
       "      <td>23.53</td>\n",
       "      <td>25.88</td>\n",
       "      <td>24.16</td>\n",
       "      <td>23.53</td>\n",
       "      <td>95578.03</td>\n",
       "      <td>0.63</td>\n",
       "      <td>2.68</td>\n",
       "      <td>22.942</td>\n",
       "      <td>22.142</td>\n",
       "      <td>22.875</td>\n",
       "      <td>53782.64</td>\n",
       "      <td>46738.65</td>\n",
       "      <td>55576.11</td>\n",
       "      <td>2.39</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-09-28</th>\n",
       "      <td>19.88</td>\n",
       "      <td>20.98</td>\n",
       "      <td>20.86</td>\n",
       "      <td>19.71</td>\n",
       "      <td>95580.75</td>\n",
       "      <td>0.98</td>\n",
       "      <td>4.93</td>\n",
       "      <td>20.458</td>\n",
       "      <td>20.897</td>\n",
       "      <td>21.784</td>\n",
       "      <td>73619.52</td>\n",
       "      <td>69253.23</td>\n",
       "      <td>107749.35</td>\n",
       "      <td>2.39</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             open   high  close    low    volume  price_change  p_change  \\\n",
       "2018-02-27  23.53  25.88  24.16  23.53  95578.03          0.63      2.68   \n",
       "2016-09-28  19.88  20.98  20.86  19.71  95580.75          0.98      4.93   \n",
       "\n",
       "               ma5    ma10    ma20     v_ma5    v_ma10     v_ma20  turnover  \n",
       "2018-02-27  22.942  22.142  22.875  53782.64  46738.65   55576.11      2.39  \n",
       "2016-09-28  20.458  20.897  21.784  73619.52  69253.23  107749.35      2.39  "
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 取出turnover=2.39的所有样本\n",
    "temp = data['turnover'].isin([2.39])\n",
    "data[temp]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 统计运算"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>open</th>\n",
       "      <th>high</th>\n",
       "      <th>close</th>\n",
       "      <th>low</th>\n",
       "      <th>volume</th>\n",
       "      <th>price_change</th>\n",
       "      <th>p_change</th>\n",
       "      <th>ma5</th>\n",
       "      <th>ma10</th>\n",
       "      <th>ma20</th>\n",
       "      <th>v_ma5</th>\n",
       "      <th>v_ma10</th>\n",
       "      <th>v_ma20</th>\n",
       "      <th>turnover</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>643.000000</td>\n",
       "      <td>643.000000</td>\n",
       "      <td>643.000000</td>\n",
       "      <td>643.000000</td>\n",
       "      <td>643.000000</td>\n",
       "      <td>643.000000</td>\n",
       "      <td>643.000000</td>\n",
       "      <td>643.000000</td>\n",
       "      <td>643.000000</td>\n",
       "      <td>643.000000</td>\n",
       "      <td>643.000000</td>\n",
       "      <td>643.000000</td>\n",
       "      <td>643.000000</td>\n",
       "      <td>643.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>21.272706</td>\n",
       "      <td>21.900513</td>\n",
       "      <td>21.336267</td>\n",
       "      <td>20.771835</td>\n",
       "      <td>99905.519114</td>\n",
       "      <td>0.018802</td>\n",
       "      <td>0.190280</td>\n",
       "      <td>21.302362</td>\n",
       "      <td>21.267656</td>\n",
       "      <td>21.200946</td>\n",
       "      <td>100008.642691</td>\n",
       "      <td>100287.542177</td>\n",
       "      <td>100797.518398</td>\n",
       "      <td>2.936190</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>3.930973</td>\n",
       "      <td>4.077578</td>\n",
       "      <td>3.942806</td>\n",
       "      <td>3.791968</td>\n",
       "      <td>73879.119354</td>\n",
       "      <td>0.898476</td>\n",
       "      <td>4.079698</td>\n",
       "      <td>3.880640</td>\n",
       "      <td>3.813602</td>\n",
       "      <td>3.686186</td>\n",
       "      <td>62761.578326</td>\n",
       "      <td>56759.082060</td>\n",
       "      <td>50101.575639</td>\n",
       "      <td>2.079375</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>12.250000</td>\n",
       "      <td>12.670000</td>\n",
       "      <td>12.360000</td>\n",
       "      <td>12.200000</td>\n",
       "      <td>1158.120000</td>\n",
       "      <td>-3.520000</td>\n",
       "      <td>-10.030000</td>\n",
       "      <td>12.520000</td>\n",
       "      <td>12.520000</td>\n",
       "      <td>12.520000</td>\n",
       "      <td>10804.740000</td>\n",
       "      <td>19130.510000</td>\n",
       "      <td>23311.000000</td>\n",
       "      <td>0.040000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>19.000000</td>\n",
       "      <td>19.500000</td>\n",
       "      <td>19.045000</td>\n",
       "      <td>18.525000</td>\n",
       "      <td>48533.210000</td>\n",
       "      <td>-0.390000</td>\n",
       "      <td>-1.850000</td>\n",
       "      <td>18.990000</td>\n",
       "      <td>19.102000</td>\n",
       "      <td>19.275000</td>\n",
       "      <td>55794.985000</td>\n",
       "      <td>59861.955000</td>\n",
       "      <td>64103.675000</td>\n",
       "      <td>1.360000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>21.440000</td>\n",
       "      <td>21.970000</td>\n",
       "      <td>21.450000</td>\n",
       "      <td>20.980000</td>\n",
       "      <td>83175.930000</td>\n",
       "      <td>0.050000</td>\n",
       "      <td>0.260000</td>\n",
       "      <td>21.504000</td>\n",
       "      <td>21.623000</td>\n",
       "      <td>21.530000</td>\n",
       "      <td>86133.330000</td>\n",
       "      <td>89234.970000</td>\n",
       "      <td>96291.730000</td>\n",
       "      <td>2.500000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>23.400000</td>\n",
       "      <td>24.065000</td>\n",
       "      <td>23.415000</td>\n",
       "      <td>22.850000</td>\n",
       "      <td>127580.055000</td>\n",
       "      <td>0.455000</td>\n",
       "      <td>2.305000</td>\n",
       "      <td>23.318000</td>\n",
       "      <td>23.098500</td>\n",
       "      <td>23.136000</td>\n",
       "      <td>127655.655000</td>\n",
       "      <td>124693.255000</td>\n",
       "      <td>124001.015000</td>\n",
       "      <td>3.915000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>34.990000</td>\n",
       "      <td>36.350000</td>\n",
       "      <td>35.210000</td>\n",
       "      <td>34.010000</td>\n",
       "      <td>501915.410000</td>\n",
       "      <td>3.030000</td>\n",
       "      <td>10.030000</td>\n",
       "      <td>33.696000</td>\n",
       "      <td>32.186000</td>\n",
       "      <td>29.998000</td>\n",
       "      <td>404443.540000</td>\n",
       "      <td>360028.160000</td>\n",
       "      <td>269280.790000</td>\n",
       "      <td>12.560000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             open        high       close         low         volume  \\\n",
       "count  643.000000  643.000000  643.000000  643.000000     643.000000   \n",
       "mean    21.272706   21.900513   21.336267   20.771835   99905.519114   \n",
       "std      3.930973    4.077578    3.942806    3.791968   73879.119354   \n",
       "min     12.250000   12.670000   12.360000   12.200000    1158.120000   \n",
       "25%     19.000000   19.500000   19.045000   18.525000   48533.210000   \n",
       "50%     21.440000   21.970000   21.450000   20.980000   83175.930000   \n",
       "75%     23.400000   24.065000   23.415000   22.850000  127580.055000   \n",
       "max     34.990000   36.350000   35.210000   34.010000  501915.410000   \n",
       "\n",
       "       price_change    p_change         ma5        ma10        ma20  \\\n",
       "count    643.000000  643.000000  643.000000  643.000000  643.000000   \n",
       "mean       0.018802    0.190280   21.302362   21.267656   21.200946   \n",
       "std        0.898476    4.079698    3.880640    3.813602    3.686186   \n",
       "min       -3.520000  -10.030000   12.520000   12.520000   12.520000   \n",
       "25%       -0.390000   -1.850000   18.990000   19.102000   19.275000   \n",
       "50%        0.050000    0.260000   21.504000   21.623000   21.530000   \n",
       "75%        0.455000    2.305000   23.318000   23.098500   23.136000   \n",
       "max        3.030000   10.030000   33.696000   32.186000   29.998000   \n",
       "\n",
       "               v_ma5         v_ma10         v_ma20    turnover  \n",
       "count     643.000000     643.000000     643.000000  643.000000  \n",
       "mean   100008.642691  100287.542177  100797.518398    2.936190  \n",
       "std     62761.578326   56759.082060   50101.575639    2.079375  \n",
       "min     10804.740000   19130.510000   23311.000000    0.040000  \n",
       "25%     55794.985000   59861.955000   64103.675000    1.360000  \n",
       "50%     86133.330000   89234.970000   96291.730000    2.500000  \n",
       "75%    127655.655000  124693.255000  124001.015000    3.915000  \n",
       "max    404443.540000  360028.160000  269280.790000   12.560000  "
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>open</th>\n",
       "      <th>high</th>\n",
       "      <th>close</th>\n",
       "      <th>low</th>\n",
       "      <th>volume</th>\n",
       "      <th>price_change</th>\n",
       "      <th>p_change</th>\n",
       "      <th>ma5</th>\n",
       "      <th>ma10</th>\n",
       "      <th>ma20</th>\n",
       "      <th>v_ma5</th>\n",
       "      <th>v_ma10</th>\n",
       "      <th>v_ma20</th>\n",
       "      <th>turnover</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-02-27</th>\n",
       "      <td>23.53</td>\n",
       "      <td>25.88</td>\n",
       "      <td>24.16</td>\n",
       "      <td>23.53</td>\n",
       "      <td>95578.03</td>\n",
       "      <td>0.63</td>\n",
       "      <td>2.68</td>\n",
       "      <td>22.942</td>\n",
       "      <td>22.142</td>\n",
       "      <td>22.875</td>\n",
       "      <td>53782.64</td>\n",
       "      <td>46738.65</td>\n",
       "      <td>55576.11</td>\n",
       "      <td>2.39</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-26</th>\n",
       "      <td>22.80</td>\n",
       "      <td>23.78</td>\n",
       "      <td>23.53</td>\n",
       "      <td>22.80</td>\n",
       "      <td>60985.11</td>\n",
       "      <td>0.69</td>\n",
       "      <td>3.02</td>\n",
       "      <td>22.406</td>\n",
       "      <td>21.955</td>\n",
       "      <td>22.942</td>\n",
       "      <td>40827.52</td>\n",
       "      <td>42736.34</td>\n",
       "      <td>56007.50</td>\n",
       "      <td>1.53</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-23</th>\n",
       "      <td>22.88</td>\n",
       "      <td>23.37</td>\n",
       "      <td>22.82</td>\n",
       "      <td>22.71</td>\n",
       "      <td>52914.01</td>\n",
       "      <td>0.54</td>\n",
       "      <td>2.42</td>\n",
       "      <td>21.938</td>\n",
       "      <td>21.929</td>\n",
       "      <td>23.022</td>\n",
       "      <td>35119.58</td>\n",
       "      <td>41871.97</td>\n",
       "      <td>56372.85</td>\n",
       "      <td>1.32</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-22</th>\n",
       "      <td>22.25</td>\n",
       "      <td>22.76</td>\n",
       "      <td>22.28</td>\n",
       "      <td>22.02</td>\n",
       "      <td>36105.01</td>\n",
       "      <td>0.36</td>\n",
       "      <td>1.64</td>\n",
       "      <td>21.446</td>\n",
       "      <td>21.909</td>\n",
       "      <td>23.137</td>\n",
       "      <td>35397.58</td>\n",
       "      <td>39904.78</td>\n",
       "      <td>60149.60</td>\n",
       "      <td>0.90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-14</th>\n",
       "      <td>21.49</td>\n",
       "      <td>21.99</td>\n",
       "      <td>21.92</td>\n",
       "      <td>21.48</td>\n",
       "      <td>23331.04</td>\n",
       "      <td>0.44</td>\n",
       "      <td>2.05</td>\n",
       "      <td>21.366</td>\n",
       "      <td>21.923</td>\n",
       "      <td>23.253</td>\n",
       "      <td>33590.21</td>\n",
       "      <td>42935.74</td>\n",
       "      <td>61716.11</td>\n",
       "      <td>0.58</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             open   high  close    low    volume  price_change  p_change  \\\n",
       "2018-02-27  23.53  25.88  24.16  23.53  95578.03          0.63      2.68   \n",
       "2018-02-26  22.80  23.78  23.53  22.80  60985.11          0.69      3.02   \n",
       "2018-02-23  22.88  23.37  22.82  22.71  52914.01          0.54      2.42   \n",
       "2018-02-22  22.25  22.76  22.28  22.02  36105.01          0.36      1.64   \n",
       "2018-02-14  21.49  21.99  21.92  21.48  23331.04          0.44      2.05   \n",
       "\n",
       "               ma5    ma10    ma20     v_ma5    v_ma10    v_ma20  turnover  \n",
       "2018-02-27  22.942  22.142  22.875  53782.64  46738.65  55576.11      2.39  \n",
       "2018-02-26  22.406  21.955  22.942  40827.52  42736.34  56007.50      1.53  \n",
       "2018-02-23  21.938  21.929  23.022  35119.58  41871.97  56372.85      1.32  \n",
       "2018-02-22  21.446  21.909  23.137  35397.58  39904.78  60149.60      0.90  \n",
       "2018-02-14  21.366  21.923  23.253  33590.21  42935.74  61716.11      0.58  "
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "34.99"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 求最大值\n",
    "data['open'].max()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 累计统计函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>open</th>\n",
       "      <th>high</th>\n",
       "      <th>close</th>\n",
       "      <th>low</th>\n",
       "      <th>volume</th>\n",
       "      <th>price_change</th>\n",
       "      <th>p_change</th>\n",
       "      <th>ma5</th>\n",
       "      <th>ma10</th>\n",
       "      <th>ma20</th>\n",
       "      <th>v_ma5</th>\n",
       "      <th>v_ma10</th>\n",
       "      <th>v_ma20</th>\n",
       "      <th>turnover</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-02-27</th>\n",
       "      <td>23.53</td>\n",
       "      <td>25.88</td>\n",
       "      <td>24.16</td>\n",
       "      <td>23.53</td>\n",
       "      <td>95578.03</td>\n",
       "      <td>0.63</td>\n",
       "      <td>2.68</td>\n",
       "      <td>22.942</td>\n",
       "      <td>22.142</td>\n",
       "      <td>22.875</td>\n",
       "      <td>53782.64</td>\n",
       "      <td>46738.65</td>\n",
       "      <td>55576.11</td>\n",
       "      <td>2.39</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-26</th>\n",
       "      <td>22.80</td>\n",
       "      <td>23.78</td>\n",
       "      <td>23.53</td>\n",
       "      <td>22.80</td>\n",
       "      <td>60985.11</td>\n",
       "      <td>0.69</td>\n",
       "      <td>3.02</td>\n",
       "      <td>22.406</td>\n",
       "      <td>21.955</td>\n",
       "      <td>22.942</td>\n",
       "      <td>40827.52</td>\n",
       "      <td>42736.34</td>\n",
       "      <td>56007.50</td>\n",
       "      <td>1.53</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-23</th>\n",
       "      <td>22.88</td>\n",
       "      <td>23.37</td>\n",
       "      <td>22.82</td>\n",
       "      <td>22.71</td>\n",
       "      <td>52914.01</td>\n",
       "      <td>0.54</td>\n",
       "      <td>2.42</td>\n",
       "      <td>21.938</td>\n",
       "      <td>21.929</td>\n",
       "      <td>23.022</td>\n",
       "      <td>35119.58</td>\n",
       "      <td>41871.97</td>\n",
       "      <td>56372.85</td>\n",
       "      <td>1.32</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-22</th>\n",
       "      <td>22.25</td>\n",
       "      <td>22.76</td>\n",
       "      <td>22.28</td>\n",
       "      <td>22.02</td>\n",
       "      <td>36105.01</td>\n",
       "      <td>0.36</td>\n",
       "      <td>1.64</td>\n",
       "      <td>21.446</td>\n",
       "      <td>21.909</td>\n",
       "      <td>23.137</td>\n",
       "      <td>35397.58</td>\n",
       "      <td>39904.78</td>\n",
       "      <td>60149.60</td>\n",
       "      <td>0.90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-14</th>\n",
       "      <td>21.49</td>\n",
       "      <td>21.99</td>\n",
       "      <td>21.92</td>\n",
       "      <td>21.48</td>\n",
       "      <td>23331.04</td>\n",
       "      <td>0.44</td>\n",
       "      <td>2.05</td>\n",
       "      <td>21.366</td>\n",
       "      <td>21.923</td>\n",
       "      <td>23.253</td>\n",
       "      <td>33590.21</td>\n",
       "      <td>42935.74</td>\n",
       "      <td>61716.11</td>\n",
       "      <td>0.58</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             open   high  close    low    volume  price_change  p_change  \\\n",
       "2018-02-27  23.53  25.88  24.16  23.53  95578.03          0.63      2.68   \n",
       "2018-02-26  22.80  23.78  23.53  22.80  60985.11          0.69      3.02   \n",
       "2018-02-23  22.88  23.37  22.82  22.71  52914.01          0.54      2.42   \n",
       "2018-02-22  22.25  22.76  22.28  22.02  36105.01          0.36      1.64   \n",
       "2018-02-14  21.49  21.99  21.92  21.48  23331.04          0.44      2.05   \n",
       "\n",
       "               ma5    ma10    ma20     v_ma5    v_ma10    v_ma20  turnover  \n",
       "2018-02-27  22.942  22.142  22.875  53782.64  46738.65  55576.11      2.39  \n",
       "2018-02-26  22.406  21.955  22.942  40827.52  42736.34  56007.50      1.53  \n",
       "2018-02-23  21.938  21.929  23.022  35119.58  41871.97  56372.85      1.32  \n",
       "2018-02-22  21.446  21.909  23.137  35397.58  39904.78  60149.60      0.90  \n",
       "2018-02-14  21.366  21.923  23.253  33590.21  42935.74  61716.11      0.58  "
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 按照时间排序数据\n",
    "temp = data.sort_index()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>open</th>\n",
       "      <th>high</th>\n",
       "      <th>close</th>\n",
       "      <th>low</th>\n",
       "      <th>volume</th>\n",
       "      <th>price_change</th>\n",
       "      <th>p_change</th>\n",
       "      <th>ma5</th>\n",
       "      <th>ma10</th>\n",
       "      <th>ma20</th>\n",
       "      <th>v_ma5</th>\n",
       "      <th>v_ma10</th>\n",
       "      <th>v_ma20</th>\n",
       "      <th>turnover</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2015-03-02</th>\n",
       "      <td>12.25</td>\n",
       "      <td>12.67</td>\n",
       "      <td>12.52</td>\n",
       "      <td>12.20</td>\n",
       "      <td>96291.73</td>\n",
       "      <td>0.32</td>\n",
       "      <td>2.62</td>\n",
       "      <td>12.520</td>\n",
       "      <td>12.520</td>\n",
       "      <td>12.520</td>\n",
       "      <td>96291.73</td>\n",
       "      <td>96291.73</td>\n",
       "      <td>96291.73</td>\n",
       "      <td>3.30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-03-03</th>\n",
       "      <td>12.52</td>\n",
       "      <td>13.06</td>\n",
       "      <td>12.70</td>\n",
       "      <td>12.52</td>\n",
       "      <td>139071.61</td>\n",
       "      <td>0.18</td>\n",
       "      <td>1.44</td>\n",
       "      <td>12.610</td>\n",
       "      <td>12.610</td>\n",
       "      <td>12.610</td>\n",
       "      <td>117681.67</td>\n",
       "      <td>117681.67</td>\n",
       "      <td>117681.67</td>\n",
       "      <td>4.76</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-03-04</th>\n",
       "      <td>12.80</td>\n",
       "      <td>12.92</td>\n",
       "      <td>12.90</td>\n",
       "      <td>12.61</td>\n",
       "      <td>67075.44</td>\n",
       "      <td>0.20</td>\n",
       "      <td>1.57</td>\n",
       "      <td>12.707</td>\n",
       "      <td>12.707</td>\n",
       "      <td>12.707</td>\n",
       "      <td>100812.93</td>\n",
       "      <td>100812.93</td>\n",
       "      <td>100812.93</td>\n",
       "      <td>2.30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-03-05</th>\n",
       "      <td>12.88</td>\n",
       "      <td>13.45</td>\n",
       "      <td>13.16</td>\n",
       "      <td>12.87</td>\n",
       "      <td>93180.39</td>\n",
       "      <td>0.26</td>\n",
       "      <td>2.02</td>\n",
       "      <td>12.820</td>\n",
       "      <td>12.820</td>\n",
       "      <td>12.820</td>\n",
       "      <td>98904.79</td>\n",
       "      <td>98904.79</td>\n",
       "      <td>98904.79</td>\n",
       "      <td>3.19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015-03-06</th>\n",
       "      <td>13.17</td>\n",
       "      <td>14.48</td>\n",
       "      <td>14.28</td>\n",
       "      <td>13.13</td>\n",
       "      <td>179831.72</td>\n",
       "      <td>1.12</td>\n",
       "      <td>8.51</td>\n",
       "      <td>13.112</td>\n",
       "      <td>13.112</td>\n",
       "      <td>13.112</td>\n",
       "      <td>115090.18</td>\n",
       "      <td>115090.18</td>\n",
       "      <td>115090.18</td>\n",
       "      <td>6.16</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             open   high  close    low     volume  price_change  p_change  \\\n",
       "2015-03-02  12.25  12.67  12.52  12.20   96291.73          0.32      2.62   \n",
       "2015-03-03  12.52  13.06  12.70  12.52  139071.61          0.18      1.44   \n",
       "2015-03-04  12.80  12.92  12.90  12.61   67075.44          0.20      1.57   \n",
       "2015-03-05  12.88  13.45  13.16  12.87   93180.39          0.26      2.02   \n",
       "2015-03-06  13.17  14.48  14.28  13.13  179831.72          1.12      8.51   \n",
       "\n",
       "               ma5    ma10    ma20      v_ma5     v_ma10     v_ma20  turnover  \n",
       "2015-03-02  12.520  12.520  12.520   96291.73   96291.73   96291.73      3.30  \n",
       "2015-03-03  12.610  12.610  12.610  117681.67  117681.67  117681.67      4.76  \n",
       "2015-03-04  12.707  12.707  12.707  100812.93  100812.93  100812.93      2.30  \n",
       "2015-03-05  12.820  12.820  12.820   98904.79   98904.79   98904.79      3.19  \n",
       "2015-03-06  13.112  13.112  13.112  115090.18  115090.18  115090.18      6.16  "
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "temp.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 统计股票累计变化值\n",
    "res = temp['price_change'].cumsum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 绘制折线图\n",
    "res.plot()\n",
    "plt.title('股票价格变化图')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 自定义运算"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 自定义函数\n",
    "def fun_1(x):\n",
    "    return x.max() - x.min()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>open</th>\n",
       "      <th>high</th>\n",
       "      <th>close</th>\n",
       "      <th>low</th>\n",
       "      <th>volume</th>\n",
       "      <th>price_change</th>\n",
       "      <th>p_change</th>\n",
       "      <th>ma5</th>\n",
       "      <th>ma10</th>\n",
       "      <th>ma20</th>\n",
       "      <th>v_ma5</th>\n",
       "      <th>v_ma10</th>\n",
       "      <th>v_ma20</th>\n",
       "      <th>turnover</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-02-27</th>\n",
       "      <td>23.53</td>\n",
       "      <td>25.88</td>\n",
       "      <td>24.16</td>\n",
       "      <td>23.53</td>\n",
       "      <td>95578.03</td>\n",
       "      <td>0.63</td>\n",
       "      <td>2.68</td>\n",
       "      <td>22.942</td>\n",
       "      <td>22.142</td>\n",
       "      <td>22.875</td>\n",
       "      <td>53782.64</td>\n",
       "      <td>46738.65</td>\n",
       "      <td>55576.11</td>\n",
       "      <td>2.39</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-26</th>\n",
       "      <td>22.80</td>\n",
       "      <td>23.78</td>\n",
       "      <td>23.53</td>\n",
       "      <td>22.80</td>\n",
       "      <td>60985.11</td>\n",
       "      <td>0.69</td>\n",
       "      <td>3.02</td>\n",
       "      <td>22.406</td>\n",
       "      <td>21.955</td>\n",
       "      <td>22.942</td>\n",
       "      <td>40827.52</td>\n",
       "      <td>42736.34</td>\n",
       "      <td>56007.50</td>\n",
       "      <td>1.53</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-23</th>\n",
       "      <td>22.88</td>\n",
       "      <td>23.37</td>\n",
       "      <td>22.82</td>\n",
       "      <td>22.71</td>\n",
       "      <td>52914.01</td>\n",
       "      <td>0.54</td>\n",
       "      <td>2.42</td>\n",
       "      <td>21.938</td>\n",
       "      <td>21.929</td>\n",
       "      <td>23.022</td>\n",
       "      <td>35119.58</td>\n",
       "      <td>41871.97</td>\n",
       "      <td>56372.85</td>\n",
       "      <td>1.32</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-22</th>\n",
       "      <td>22.25</td>\n",
       "      <td>22.76</td>\n",
       "      <td>22.28</td>\n",
       "      <td>22.02</td>\n",
       "      <td>36105.01</td>\n",
       "      <td>0.36</td>\n",
       "      <td>1.64</td>\n",
       "      <td>21.446</td>\n",
       "      <td>21.909</td>\n",
       "      <td>23.137</td>\n",
       "      <td>35397.58</td>\n",
       "      <td>39904.78</td>\n",
       "      <td>60149.60</td>\n",
       "      <td>0.90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-14</th>\n",
       "      <td>21.49</td>\n",
       "      <td>21.99</td>\n",
       "      <td>21.92</td>\n",
       "      <td>21.48</td>\n",
       "      <td>23331.04</td>\n",
       "      <td>0.44</td>\n",
       "      <td>2.05</td>\n",
       "      <td>21.366</td>\n",
       "      <td>21.923</td>\n",
       "      <td>23.253</td>\n",
       "      <td>33590.21</td>\n",
       "      <td>42935.74</td>\n",
       "      <td>61716.11</td>\n",
       "      <td>0.58</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             open   high  close    low    volume  price_change  p_change  \\\n",
       "2018-02-27  23.53  25.88  24.16  23.53  95578.03          0.63      2.68   \n",
       "2018-02-26  22.80  23.78  23.53  22.80  60985.11          0.69      3.02   \n",
       "2018-02-23  22.88  23.37  22.82  22.71  52914.01          0.54      2.42   \n",
       "2018-02-22  22.25  22.76  22.28  22.02  36105.01          0.36      1.64   \n",
       "2018-02-14  21.49  21.99  21.92  21.48  23331.04          0.44      2.05   \n",
       "\n",
       "               ma5    ma10    ma20     v_ma5    v_ma10    v_ma20  turnover  \n",
       "2018-02-27  22.942  22.142  22.875  53782.64  46738.65  55576.11      2.39  \n",
       "2018-02-26  22.406  21.955  22.942  40827.52  42736.34  56007.50      1.53  \n",
       "2018-02-23  21.938  21.929  23.022  35119.58  41871.97  56372.85      1.32  \n",
       "2018-02-22  21.446  21.909  23.137  35397.58  39904.78  60149.60      0.90  \n",
       "2018-02-14  21.366  21.923  23.253  33590.21  42935.74  61716.11      0.58  "
      ]
     },
     "execution_count": 58,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "open     22.74\n",
       "close    22.85\n",
       "dtype: float64"
      ]
     },
     "execution_count": 60,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data[['open', 'close']].apply(fun_1, axis=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
