{ "cells": [ { "cell_type": "code", "execution_count": 4, "metadata": { "pycharm": { "is_executing": false } }, "outputs": [ { "data": { "text/plain": [ "(4094, 8)" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import pandas as pd\n", "file = r\"data_set/3-3 600519.csv\"\n", "df_gzmt = pd.read_csv(file, encoding='utf-8')\n", "df_gzmt.shape" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "is_executing": false, "name": "#%%\n" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 4094 entries, 0 to 4093\n", "Data columns (total 8 columns):\n", "day 4094 non-null object\n", "STOCK_CODE 4094 non-null int64\n", "open 4094 non-null float64\n", "close 4094 non-null float64\n", "maximum 4094 non-null float64\n", "minimum 4094 non-null float64\n", "volume 4094 non-null int64\n", "TURNOVER 4094 non-null int64\n", "dtypes: float64(4), int64(3), object(1)\n", "memory usage: 256.0+ KB\n" ] } ], "source": [ "# 通过info方法,快速查看具体的字段以及主要字段的类型、存在空值情况、数组表单消耗内存的情况等\n", "df_gzmt.info()" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "is_executing": false, "name": "#%%\n" } }, "outputs": [ { "data": { "text/plain": [ "array([6005191], dtype=int64)" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 利用unique函数,查看字段值的唯一性指标\n", "df_gzmt['STOCK_CODE'].unique()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "is_executing": false, "name": "#%%\n" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
STOCK_CODEopenclosemaximumminimumvolumeTURNOVER
count4094.04094.0000004094.0000004094.0000004094.0000004094.0000004.094000e+03
mean6005191.0182.161910182.435230184.879680179.80135327092.5258926.487986e+08
std0.0165.857882165.994905168.082099163.75206524623.4720999.550262e+08
min6005191.020.90000020.88000021.00000020.710000238.0000001.421413e+06
25%6005191.047.40500047.48250048.22250046.70500010186.7500006.203505e+07
50%6005191.0159.930000159.980000161.910000157.87500022491.0000003.727192e+08
75%6005191.0208.500000209.457500212.175000205.94500036759.5000007.486596e+08
max6005191.0800.000000799.190000803.500000788.880000406318.0000001.066339e+10
\n", "
" ], "text/plain": [ " STOCK_CODE open close maximum minimum \\\n", "count 4094.0 4094.000000 4094.000000 4094.000000 4094.000000 \n", "mean 6005191.0 182.161910 182.435230 184.879680 179.801353 \n", "std 0.0 165.857882 165.994905 168.082099 163.752065 \n", "min 6005191.0 20.900000 20.880000 21.000000 20.710000 \n", "25% 6005191.0 47.405000 47.482500 48.222500 46.705000 \n", "50% 6005191.0 159.930000 159.980000 161.910000 157.875000 \n", "75% 6005191.0 208.500000 209.457500 212.175000 205.945000 \n", "max 6005191.0 800.000000 799.190000 803.500000 788.880000 \n", "\n", " volume TURNOVER \n", "count 4094.000000 4.094000e+03 \n", "mean 27092.525892 6.487986e+08 \n", "std 24623.472099 9.550262e+08 \n", "min 238.000000 1.421413e+06 \n", "25% 10186.750000 6.203505e+07 \n", "50% 22491.000000 3.727192e+08 \n", "75% 36759.500000 7.486596e+08 \n", "max 406318.000000 1.066339e+10 " ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 通过describe方法,快速查看多字段的统计信息,包含最大最小、均值、标准差等信息\n", "df_gzmt.describe()" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "is_executing": false, "name": "#%%\n" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
daySTOCK_CODEopenclosemaximumminimumvolumeTURNOVERplacecode
02001-08-27600519134.5135.5537.7832.8540631814103470081600519
12001-08-28600519134.9936.8637.0034.611296474634630081600519
22001-08-29600519136.9836.3837.0036.10532521946890001600519
32001-08-30600519136.2837.1037.5136.00480131775580001600519
42001-08-31600519137.1537.0137.6236.8023231862310001600519
.................................
40892018-10-296005191549.09549.09549.09549.094907626947140801600519
40902018-10-306005191510.00524.00543.00509.02204397106633925121600519
40912018-10-316005191527.00548.90555.00522.009688552398530561600519
40922018-11-016005191555.00563.00585.50551.259810755810273281600519
40932018-11-026005191585.00599.90600.00572.248915752276951041600519
\n", "

4094 rows × 10 columns

\n", "
" ], "text/plain": [ " day STOCK_CODE open close maximum minimum volume \\\n", "0 2001-08-27 6005191 34.51 35.55 37.78 32.85 406318 \n", "1 2001-08-28 6005191 34.99 36.86 37.00 34.61 129647 \n", "2 2001-08-29 6005191 36.98 36.38 37.00 36.10 53252 \n", "3 2001-08-30 6005191 36.28 37.10 37.51 36.00 48013 \n", "4 2001-08-31 6005191 37.15 37.01 37.62 36.80 23231 \n", "... ... ... ... ... ... ... ... \n", "4089 2018-10-29 6005191 549.09 549.09 549.09 549.09 49076 \n", "4090 2018-10-30 6005191 510.00 524.00 543.00 509.02 204397 \n", "4091 2018-10-31 6005191 527.00 548.90 555.00 522.00 96885 \n", "4092 2018-11-01 6005191 555.00 563.00 585.50 551.25 98107 \n", "4093 2018-11-02 6005191 585.00 599.90 600.00 572.24 89157 \n", "\n", " TURNOVER place code \n", "0 1410347008 1 600519 \n", "1 463463008 1 600519 \n", "2 194689000 1 600519 \n", "3 177558000 1 600519 \n", "4 86231000 1 600519 \n", "... ... ... ... \n", "4089 2694714080 1 600519 \n", "4090 10663392512 1 600519 \n", "4091 5239853056 1 600519 \n", "4092 5581027328 1 600519 \n", "4093 5227695104 1 600519 \n", "\n", "[4094 rows x 10 columns]" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 提取STOCK_CODE的最后一位,1表示在上交所上市\n", "df_gzmt['place'] = df_gzmt['STOCK_CODE'] % 10\n", "df_gzmt['code'] = df_gzmt['STOCK_CODE'] // 10\n", "df_gzmt" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "is_executing": false, "name": "#%%\n" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
daySTOCK_CODEopenclosemaximumminimumvolumeTURNOVERplacecodem_increaseprice_mean
02001-08-27600519134.5135.5537.7832.85406318141034700816005191.043471.042405
12001-08-28600519134.9936.8637.0034.6112964746346300816005191.873574.807038
22001-08-29600519136.9836.3837.0036.10532521946890001600519-0.603655.994141
32001-08-30600519136.2837.1037.5136.004801317755800016005190.823698.123425
42001-08-31600519137.1537.0137.6236.8023231862310001600519-0.143711.893590
.......................................
40892018-10-296005191549.09549.09549.09549.0949076269471408016005190.0054908.999918
40902018-10-306005191510.00524.00543.00509.0220439710663392512160051914.0052170.005000
40912018-10-316005191527.00548.90555.00522.00968855239853056160051921.9054083.222955
40922018-11-016005191555.00563.00585.50551.2598107558102732816005198.0056887.146972
40932018-11-026005191585.00599.90600.00572.24891575227695104160051914.9058634.712967
\n", "

4094 rows × 12 columns

\n", "
" ], "text/plain": [ " day STOCK_CODE open close maximum minimum volume \\\n", "0 2001-08-27 6005191 34.51 35.55 37.78 32.85 406318 \n", "1 2001-08-28 6005191 34.99 36.86 37.00 34.61 129647 \n", "2 2001-08-29 6005191 36.98 36.38 37.00 36.10 53252 \n", "3 2001-08-30 6005191 36.28 37.10 37.51 36.00 48013 \n", "4 2001-08-31 6005191 37.15 37.01 37.62 36.80 23231 \n", "... ... ... ... ... ... ... ... \n", "4089 2018-10-29 6005191 549.09 549.09 549.09 549.09 49076 \n", "4090 2018-10-30 6005191 510.00 524.00 543.00 509.02 204397 \n", "4091 2018-10-31 6005191 527.00 548.90 555.00 522.00 96885 \n", "4092 2018-11-01 6005191 555.00 563.00 585.50 551.25 98107 \n", "4093 2018-11-02 6005191 585.00 599.90 600.00 572.24 89157 \n", "\n", " TURNOVER place code m_increase price_mean \n", "0 1410347008 1 600519 1.04 3471.042405 \n", "1 463463008 1 600519 1.87 3574.807038 \n", "2 194689000 1 600519 -0.60 3655.994141 \n", "3 177558000 1 600519 0.82 3698.123425 \n", "4 86231000 1 600519 -0.14 3711.893590 \n", "... ... ... ... ... ... \n", "4089 2694714080 1 600519 0.00 54908.999918 \n", "4090 10663392512 1 600519 14.00 52170.005000 \n", "4091 5239853056 1 600519 21.90 54083.222955 \n", "4092 5581027328 1 600519 8.00 56887.146972 \n", "4093 5227695104 1 600519 14.90 58634.712967 \n", "\n", "[4094 rows x 12 columns]" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 计算涨幅,并赋值给新增列m_increase\n", "df_gzmt['m_increase'] = df_gzmt['close'] - df_gzmt['open']\n", "# 计算平均成交价,并赋值给price_mean\n", "df_gzmt['price_mean'] = df_gzmt['TURNOVER'] / df_gzmt['volume']\n", "df_gzmt" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "is_executing": false, "name": "#%%\n" } }, "outputs": [ { "data": { "text/plain": [ "0 True\n", "1 True\n", "2 True\n", "3 True\n", "4 True\n", " ... \n", "4089 False\n", "4090 False\n", "4091 False\n", "4092 False\n", "4093 False\n", "Name: close, Length: 4094, dtype: bool" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 查看收盘价不高于500的数据\n", "df_gzmt['close'] <= 500" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "is_executing": false, "name": "#%%\n" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
daySTOCK_CODEopenclosemaximumminimumvolumeTURNOVERplacecodem_increaseprice_mean
38962018-01-096005191752.21782.52783.00752.21645925001164544160051930.3177426.996284
38972018-01-106005191785.00785.71788.88773.4847714373199315216005190.7178215.893700
38992018-01-126005191773.77788.42788.80767.02459883577281776160051914.6577787.287466
39002018-01-156005191793.46785.37799.06779.025247341366454881600519-8.0978833.790483
39912018-06-046005191752.35781.97782.90745.88738065697540352160051929.6277196.167683
39922018-06-056005191786.50788.05794.70777.2352630413657857616005191.5578597.350865
39932018-06-066005191788.00785.75800.95782.304896938706167201600519-2.2579042.184239
39942018-06-076005191789.98780.97795.55778.903916830781374721600519-9.0178588.068627
39972018-06-126005191778.00799.19803.50776.50552874385043200160051921.1979314.182358
39982018-06-136005191800.00790.33802.62788.883524428034416801600519-9.6779543.799796
39992018-06-146005191790.00786.13793.80775.183616028305142241600519-3.8778277.495133
\n", "
" ], "text/plain": [ " day STOCK_CODE open close maximum minimum volume \\\n", "3896 2018-01-09 6005191 752.21 782.52 783.00 752.21 64592 \n", "3897 2018-01-10 6005191 785.00 785.71 788.88 773.48 47714 \n", "3899 2018-01-12 6005191 773.77 788.42 788.80 767.02 45988 \n", "3900 2018-01-15 6005191 793.46 785.37 799.06 779.02 52473 \n", "3991 2018-06-04 6005191 752.35 781.97 782.90 745.88 73806 \n", "3992 2018-06-05 6005191 786.50 788.05 794.70 777.23 52630 \n", "3993 2018-06-06 6005191 788.00 785.75 800.95 782.30 48969 \n", "3994 2018-06-07 6005191 789.98 780.97 795.55 778.90 39168 \n", "3997 2018-06-12 6005191 778.00 799.19 803.50 776.50 55287 \n", "3998 2018-06-13 6005191 800.00 790.33 802.62 788.88 35244 \n", "3999 2018-06-14 6005191 790.00 786.13 793.80 775.18 36160 \n", "\n", " TURNOVER place code m_increase price_mean \n", "3896 5001164544 1 600519 30.31 77426.996284 \n", "3897 3731993152 1 600519 0.71 78215.893700 \n", "3899 3577281776 1 600519 14.65 77787.287466 \n", "3900 4136645488 1 600519 -8.09 78833.790483 \n", "3991 5697540352 1 600519 29.62 77196.167683 \n", "3992 4136578576 1 600519 1.55 78597.350865 \n", "3993 3870616720 1 600519 -2.25 79042.184239 \n", "3994 3078137472 1 600519 -9.01 78588.068627 \n", "3997 4385043200 1 600519 21.19 79314.182358 \n", "3998 2803441680 1 600519 -9.67 79543.799796 \n", "3999 2830514224 1 600519 -3.87 78277.495133 " ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 逻辑运算常用的场景是按照某一条件进行筛选\n", "df_gzmt[df_gzmt['close'] >= 780]" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "is_executing": false, "name": "#%%\n" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
daySTOCK_CODEopenclosemaximumminimumvolumeTURNOVERplacecodem_increaseprice_mean
38952018-01-086005191735.02752.13756.50735.02522053899951728160051917.1174704.563318
39032018-01-186005191747.93750.74765.00744.0958979444303129616005192.8175332.428424
39042018-01-196005191752.90750.18758.90739.025092638180219841600519-2.7274971.958999
39132018-02-016005191767.00757.73767.30752.925058338464216161600519-9.2776041.785106
39402018-03-196005191743.97753.48753.99739.0038667289734854416005199.5174930.781907
39892018-05-316005191730.25751.13751.62730.24718535356222464160051920.8874544.173020
40032018-06-216005191765.22759.32778.89758.773918330138676481600519-5.9076917.735957
40062018-06-266005191765.31754.80769.88747.004657835169454401600519-10.5175506.579072
40202018-07-166005191752.30754.68764.11751.0332475245450160016005192.3875581.265589
\n", "
" ], "text/plain": [ " day STOCK_CODE open close maximum minimum volume \\\n", "3895 2018-01-08 6005191 735.02 752.13 756.50 735.02 52205 \n", "3903 2018-01-18 6005191 747.93 750.74 765.00 744.09 58979 \n", "3904 2018-01-19 6005191 752.90 750.18 758.90 739.02 50926 \n", "3913 2018-02-01 6005191 767.00 757.73 767.30 752.92 50583 \n", "3940 2018-03-19 6005191 743.97 753.48 753.99 739.00 38667 \n", "3989 2018-05-31 6005191 730.25 751.13 751.62 730.24 71853 \n", "4003 2018-06-21 6005191 765.22 759.32 778.89 758.77 39183 \n", "4006 2018-06-26 6005191 765.31 754.80 769.88 747.00 46578 \n", "4020 2018-07-16 6005191 752.30 754.68 764.11 751.03 32475 \n", "\n", " TURNOVER place code m_increase price_mean \n", "3895 3899951728 1 600519 17.11 74704.563318 \n", "3903 4443031296 1 600519 2.81 75332.428424 \n", "3904 3818021984 1 600519 -2.72 74971.958999 \n", "3913 3846421616 1 600519 -9.27 76041.785106 \n", "3940 2897348544 1 600519 9.51 74930.781907 \n", "3989 5356222464 1 600519 20.88 74544.173020 \n", "4003 3013867648 1 600519 -5.90 76917.735957 \n", "4006 3516945440 1 600519 -10.51 75506.579072 \n", "4020 2454501600 1 600519 2.38 75581.265589 " ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 通过对多个布尔类型先进行逻辑运算(或运算|、与运算&、非运算~)\n", "df_gzmt[(df_gzmt['close'] >= 750) & (df_gzmt['close'] <= 760)]" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "is_executing": false, "name": "#%%\n" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
daySTOCK_CODEopenclosemaximumminimumvolumeTURNOVERplacecodem_increaseprice_mean
26162012-10-086005191245.30239.94245.30237.48236085665275681600519-5.3623997.270756
28532013-10-086005191135.76136.67137.40134.195686777329416016005190.9113598.293562
30982014-10-086005191161.00160.73161.10157.80456537250302241600519-0.2715881.327054
33422015-10-086005191198.78197.52201.58197.00343926841380481600519-1.2619892.360084
40742018-10-086005191715.41686.15719.00686.158274557987215361600519-29.2670079.419131
\n", "
" ], "text/plain": [ " day STOCK_CODE open close maximum minimum volume \\\n", "2616 2012-10-08 6005191 245.30 239.94 245.30 237.48 23608 \n", "2853 2013-10-08 6005191 135.76 136.67 137.40 134.19 56867 \n", "3098 2014-10-08 6005191 161.00 160.73 161.10 157.80 45653 \n", "3342 2015-10-08 6005191 198.78 197.52 201.58 197.00 34392 \n", "4074 2018-10-08 6005191 715.41 686.15 719.00 686.15 82745 \n", "\n", " TURNOVER place code m_increase price_mean \n", "2616 566527568 1 600519 -5.36 23997.270756 \n", "2853 773294160 1 600519 0.91 13598.293562 \n", "3098 725030224 1 600519 -0.27 15881.327054 \n", "3342 684138048 1 600519 -1.26 19892.360084 \n", "4074 5798721536 1 600519 -29.26 70079.419131 " ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 如果是不连续条件呢?isin可以方便地解决这个问题\n", "df_gzmt[df_gzmt['day'].isin([\n", " '2012-10-08',\n", " '2013-10-08',\n", " '2014-10-08',\n", " '2015-10-08',\n", " '2016-10-08',\n", " '2017-10-08',\n", " '2018-10-08',\n", "])]" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "is_executing": false, "name": "#%%\n" } }, "outputs": [ { "data": { "text/plain": [ "182.435229604299" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# axis=0表示进行纵向方向的计算,axis=1表示进行横向方向的计算\n", "df_gzmt['close'].mean(axis=0, skipna=True)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "is_executing": false, "name": "#%%\n" } }, "outputs": [ { "data": { "text/plain": [ "489" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 求能够获取到的最小值和最大值的索引值\n", "df_gzmt['close'].idxmax(axis=0)\n", "df_gzmt['open'].idxmin(axis=0)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "is_executing": false, "name": "#%%\n" } }, "outputs": [ { "data": { "text/plain": [ "Index(['STOCK_CODE', 'open', 'close', 'maximum', 'minimum', 'volume',\n", " 'TURNOVER'],\n", " dtype='object')" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_mt = pd.read_csv(file, encoding='utf-8', index_col=0)\n", "df_mt\n", "df_mt.index\n", "df_mt.index.name\n", "df_mt.columns" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "is_executing": false, "name": "#%%\n" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "STOCK_CODE 6.005191e+06\n", "open 3.451000e+01\n", "close 3.555000e+01\n", "maximum 3.778000e+01\n", "minimum 3.285000e+01\n", "volume 4.063180e+05\n", "TURNOVER 1.410347e+09\n", "Name: 2001-08-27, dtype: float64\n", "type is \n", "2001-08-27 GZMT close price is 35.55 yuan\n" ] } ], "source": [ "# 通过索引名字进行遍历,这里仅做演示,程序里增加了break,只打印第一轮循环\n", "for day in df_mt.index:\n", " row = df_mt.loc[day]\n", " print(row)\n", " print('type is', type(row))\n", " print(\"{0} GZMT close price is {1} yuan\".format(day, row['close']))\n", " break" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "is_executing": false, "name": "#%%\n" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "day\n", "2001-08-27 6005191\n", "2001-08-28 6005191\n", "2001-08-29 6005191\n", "2001-08-30 6005191\n", "2001-08-31 6005191\n", " ... \n", "2018-10-29 6005191\n", "2018-10-30 6005191\n", "2018-10-31 6005191\n", "2018-11-01 6005191\n", "2018-11-02 6005191\n", "Name: STOCK_CODE, Length: 4094, dtype: int64\n", "day\n", "2001-08-27 6005191\n", "2001-08-28 6005191\n", "2001-08-29 6005191\n", "2001-08-30 6005191\n", "2001-08-31 6005191\n", " ... \n", "2018-10-29 6005191\n", "2018-10-30 6005191\n", "2018-10-31 6005191\n", "2018-11-01 6005191\n", "2018-11-02 6005191\n", "Name: STOCK_CODE, Length: 4094, dtype: int64\n", "type is \n" ] } ], "source": [ "# 列循环和行循环的规律非常相似,无非就是循环对象变更为列名\n", "for col in df_mt.columns:\n", " print(df_mt[col])\n", " print(df_mt.loc[:, col])\n", " print('type is', type(df_mt[col]))\n", " break" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "is_executing": false, "name": "#%%\n" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2001-08-27\n", "STOCK_CODE 6.005191e+06\n", "open 3.451000e+01\n", "close 3.555000e+01\n", "maximum 3.778000e+01\n", "minimum 3.285000e+01\n", "volume 4.063180e+05\n", "TURNOVER 1.410347e+09\n", "Name: 2001-08-27, dtype: float64\n", "\n" ] } ], "source": [ "# 内置的itertuples()和iterrows()等方法 ,是类似于迭代器的yield用法,一次产生一行的生成器\n", "for index, row in df_mt.iterrows():\n", " print(index)\n", " print(row)\n", " print(type(row))\n", " break" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "is_executing": false, "name": "#%%\n" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Pandas(Index='2001-08-27', STOCK_CODE=6005191, open=34.51, close=35.55, maximum=37.78, minimum=32.85, volume=406318, TURNOVER=1410347008) \n", "2001-08-27\n", "34.51\n", "35.55\n", "1410347008\n", "(406318,)\n" ] } ], "source": [ "# 和iterrows()类似,itertuples()也是一种行循环方法,把每一行数据返回成 一个namedtuple,并且行的索引值作为元组的第一个元素。\n", "for sub_tuple in df_mt.itertuples():\n", " print(sub_tuple, type(sub_tuple))\n", " print(sub_tuple.Index)\n", " print(sub_tuple.open)\n", " print(getattr(sub_tuple, 'close'))\n", " print(sub_tuple[-1])\n", " print(sub_tuple[-2:-1])\n", " break" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "is_executing": false, "name": "#%%\n" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "STOCK_CODE\n", "day\n", "2001-08-27 6005191\n", "2001-08-28 6005191\n", "2001-08-29 6005191\n", "2001-08-30 6005191\n", "2001-08-31 6005191\n", " ... \n", "2018-10-29 6005191\n", "2018-10-30 6005191\n", "2018-10-31 6005191\n", "2018-11-01 6005191\n", "2018-11-02 6005191\n", "Name: STOCK_CODE, Length: 4094, dtype: int64\n", "\n", "open\n", "day\n", "2001-08-27 34.51\n", "2001-08-28 34.99\n", "2001-08-29 36.98\n", "2001-08-30 36.28\n", "2001-08-31 37.15\n", " ... \n", "2018-10-29 549.09\n", "2018-10-30 510.00\n", "2018-10-31 527.00\n", "2018-11-01 555.00\n", "2018-11-02 585.00\n", "Name: open, Length: 4094, dtype: float64\n", "\n", "close\n", "day\n", "2001-08-27 35.55\n", "2001-08-28 36.86\n", "2001-08-29 36.38\n", "2001-08-30 37.10\n", "2001-08-31 37.01\n", " ... \n", "2018-10-29 549.09\n", "2018-10-30 524.00\n", "2018-10-31 548.90\n", "2018-11-01 563.00\n", "2018-11-02 599.90\n", "Name: close, Length: 4094, dtype: float64\n", "\n", "maximum\n", "day\n", "2001-08-27 37.78\n", "2001-08-28 37.00\n", "2001-08-29 37.00\n", "2001-08-30 37.51\n", "2001-08-31 37.62\n", " ... \n", "2018-10-29 549.09\n", "2018-10-30 543.00\n", "2018-10-31 555.00\n", "2018-11-01 585.50\n", "2018-11-02 600.00\n", "Name: maximum, Length: 4094, dtype: float64\n", "\n", "minimum\n", "day\n", "2001-08-27 32.85\n", "2001-08-28 34.61\n", "2001-08-29 36.10\n", "2001-08-30 36.00\n", "2001-08-31 36.80\n", " ... \n", "2018-10-29 549.09\n", "2018-10-30 509.02\n", "2018-10-31 522.00\n", "2018-11-01 551.25\n", "2018-11-02 572.24\n", "Name: minimum, Length: 4094, dtype: float64\n", "\n", "volume\n", "day\n", "2001-08-27 406318\n", "2001-08-28 129647\n", "2001-08-29 53252\n", "2001-08-30 48013\n", "2001-08-31 23231\n", " ... \n", "2018-10-29 49076\n", "2018-10-30 204397\n", "2018-10-31 96885\n", "2018-11-01 98107\n", "2018-11-02 89157\n", "Name: volume, Length: 4094, dtype: int64\n", "\n", "TURNOVER\n", "day\n", "2001-08-27 1410347008\n", "2001-08-28 463463008\n", "2001-08-29 194689000\n", "2001-08-30 177558000\n", "2001-08-31 86231000\n", " ... \n", "2018-10-29 2694714080\n", "2018-10-30 10663392512\n", "2018-10-31 5239853056\n", "2018-11-01 5581027328\n", "2018-11-02 5227695104\n", "Name: TURNOVER, Length: 4094, dtype: int64\n", "\n" ] } ], "source": [ "# iteritems()是一种列循环的方法,返回列名和列的内容\n", "for col_name, column in df_mt.iteritems():\n", " print(col_name)\n", " print(column)\n", " print(type(column))\n", " break" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "is_executing": false, "name": "#%%\n" } }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# 手动实现累计和的运算\n", "%matplotlib inline\n", "import matplotlib as plt\n", "# 第一步:逐行计算累积值\n", "df = pd.read_csv(file, encoding='utf-8', index_col=0)\n", "cum_sum = []\n", "last_cum = 0\n", "for index, row in df.iterrows():\n", " tmp = row['TURNOVER'] + last_cum\n", " cum_sum.append(tmp)\n", " last_cum = tmp\n", "# 新增一列,并用上一步的结果赋值\n", "df['Turnover_CUMSUM'] = cum_sum\n", "# 第三步:可视化效果\n", "df['Turnover_CUMSUM'].plot()" ] } ], "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.6" }, "pycharm": { "stem_cell": { "cell_type": "raw", "metadata": { "collapsed": false }, "source": [] } } }, "nbformat": 4, "nbformat_minor": 4 }