大数据作业 初稿

# 导入 pandas 模块
import pandas as pd   

# 设置直接显示图片
%matplotlib inline   
stock = pd.read_csv('stock.csv', parse_dates=True, index_col='Date')
stock







































































































































































































Open High Low Close Volume
Date
2017-06-01 153.17 153.33 152.22 153.18 16404088
2017-06-02 153.58 155.45 152.89 155.45 27770715
2017-06-05 154.34 154.45 153.46 153.93 25331662
2017-06-06 153.90 155.81 153.78 154.45 26624926
2017-06-07 155.02 155.98 154.48 155.37 21069647
2017-06-08 155.25 155.54 154.40 154.99 21250798
2017-06-09 155.19 155.19 146.02 148.98 64882657
2017-06-12 145.74 146.09 142.51 145.42 72307330
2017-06-13 147.16 147.45 145.15 146.59 34165445
2017-06-14 147.50 147.50 143.84 145.16 31531232
2017-06-15 143.32 144.48 142.21 144.29 32165373
2017-06-16 143.78 144.50 142.20 142.27 50361093
2017-06-19 143.66 146.74 143.66 146.34 32541404
2017-06-20 146.87 146.87 144.94 145.01 24900073
2017-06-21 145.52 146.07 144.61 145.87 21265751
2017-06-22 145.77 146.70 145.12 145.63 19106294
2017-06-23 145.13 147.16 145.11 146.28 35439389
2017-06-26 147.17 148.28 145.38 145.82 25692361
2017-06-27 145.01 146.16 143.62 143.73 24761891
2017-06-28 144.49 146.11 143.16 145.83 22082432
2017-06-29 144.71 145.13 142.28 143.68 31499368
2017-06-30 144.45 144.96 143.78 144.02 23024107

import pandas as pd
import datetime
import pandas_datareader.data as web

# 设置获取的时间区间
start = datetime.datetime(2017,6,1)
end = datetime.datetime(2017,6,30)

# 从google获取苹果的股票数据
apple = web.DataReader("AAPL", "google", start, end)
---------------------------------------------------------------------------

ModuleNotFoundError                       Traceback (most recent call last)

 in ()
      1 import pandas as pd
      2 import datetime
----> 3 import pandas_datareader.data as web
      4 
      5 # 设置获取的时间区间


ModuleNotFoundError: No module named 'pandas_datareader'
stock.head()































































Open High Low Close Volume
Date
2017-06-01 153.17 153.33 152.22 153.18 16404088
2017-06-02 153.58 155.45 152.89 155.45 27770715
2017-06-05 154.34 154.45 153.46 153.93 25331662
2017-06-06 153.90 155.81 153.78 154.45 26624926
2017-06-07 155.02 155.98 154.48 155.37 21069647

stock.head(3)















































Open High Low Close Volume
Date
2017-06-01 153.17 153.33 152.22 153.18 16404088
2017-06-02 153.58 155.45 152.89 155.45 27770715
2017-06-05 154.34 154.45 153.46 153.93 25331662

###看尾部5行
stock.tail()































































Open High Low Close Volume
Date
2017-06-26 147.17 148.28 145.38 145.82 25692361
2017-06-27 145.01 146.16 143.62 143.73 24761891
2017-06-28 144.49 146.11 143.16 145.83 22082432
2017-06-29 144.71 145.13 142.28 143.68 31499368
2017-06-30 144.45 144.96 143.78 144.02 23024107

#### 总体信息,没有输括号
stock.info

#### 总体信息
stock.info()

DatetimeIndex: 22 entries, 2017-06-01 to 2017-06-30
Data columns (total 5 columns):
Open      22 non-null float64
High      22 non-null float64
Low       22 non-null float64
Close     22 non-null float64
Volume    22 non-null int64
dtypes: float64(4), int64(1)
memory usage: 1.0 KB
stock.describe()
#### 尝试了不输入圆括号,结果就是显示明细















































































Open High Low Close Volume
count 22.000000 22.000000 22.000000 22.000000 2.200000e+01
mean 148.215000 149.088636 146.582727 147.831364 3.109900e+07
std 4.450871 4.337027 4.507623 4.434315 1.416738e+07
min 143.320000 144.480000 142.200000 142.270000 1.640409e+07
25% 144.785000 146.095000 143.630000 145.047500 2.231785e+07
50% 146.320000 147.015000 145.025000 145.850000 2.615864e+07
75% 153.477500 154.170000 150.670000 152.130000 3.244740e+07
max 155.250000 155.980000 154.480000 155.450000 7.230733e+07

stock







































































































































































































Open High Low Close Volume
Date
2017-06-01 153.17 153.33 152.22 153.18 16404088
2017-06-02 153.58 155.45 152.89 155.45 27770715
2017-06-05 154.34 154.45 153.46 153.93 25331662
2017-06-06 153.90 155.81 153.78 154.45 26624926
2017-06-07 155.02 155.98 154.48 155.37 21069647
2017-06-08 155.25 155.54 154.40 154.99 21250798
2017-06-09 155.19 155.19 146.02 148.98 64882657
2017-06-12 145.74 146.09 142.51 145.42 72307330
2017-06-13 147.16 147.45 145.15 146.59 34165445
2017-06-14 147.50 147.50 143.84 145.16 31531232
2017-06-15 143.32 144.48 142.21 144.29 32165373
2017-06-16 143.78 144.50 142.20 142.27 50361093
2017-06-19 143.66 146.74 143.66 146.34 32541404
2017-06-20 146.87 146.87 144.94 145.01 24900073
2017-06-21 145.52 146.07 144.61 145.87 21265751
2017-06-22 145.77 146.70 145.12 145.63 19106294
2017-06-23 145.13 147.16 145.11 146.28 35439389
2017-06-26 147.17 148.28 145.38 145.82 25692361
2017-06-27 145.01 146.16 143.62 143.73 24761891
2017-06-28 144.49 146.11 143.16 145.83 22082432
2017-06-29 144.71 145.13 142.28 143.68 31499368
2017-06-30 144.45 144.96 143.78 144.02 23024107

stock.shape
(22, 5)
stock.columns
Index(['Open', 'High', 'Low', 'Close', 'Volume'], dtype='object')
stock.index
DatetimeIndex(['2017-06-01', '2017-06-02', '2017-06-05', '2017-06-06',
               '2017-06-07', '2017-06-08', '2017-06-09', '2017-06-12',
               '2017-06-13', '2017-06-14', '2017-06-15', '2017-06-16',
               '2017-06-19', '2017-06-20', '2017-06-21', '2017-06-22',
               '2017-06-23', '2017-06-26', '2017-06-27', '2017-06-28',
               '2017-06-29', '2017-06-30'],
              dtype='datetime64[ns]', name='Date', freq=None)
stock.plot()

stock.plot(y='Open')

stock['Close']
Date
2017-06-01    153.18
2017-06-02    155.45
2017-06-05    153.93
2017-06-06    154.45
2017-06-07    155.37
2017-06-08    154.99
2017-06-09    148.98
2017-06-12    145.42
2017-06-13    146.59
2017-06-14    145.16
2017-06-15    144.29
2017-06-16    142.27
2017-06-19    146.34
2017-06-20    145.01
2017-06-21    145.87
2017-06-22    145.63
2017-06-23    146.28
2017-06-26    145.82
2017-06-27    143.73
2017-06-28    145.83
2017-06-29    143.68
2017-06-30    144.02
Name: Close, dtype: float64
stock.Close
Date
2017-06-01    153.18
2017-06-02    155.45
2017-06-05    153.93
2017-06-06    154.45
2017-06-07    155.37
2017-06-08    154.99
2017-06-09    148.98
2017-06-12    145.42
2017-06-13    146.59
2017-06-14    145.16
2017-06-15    144.29
2017-06-16    142.27
2017-06-19    146.34
2017-06-20    145.01
2017-06-21    145.87
2017-06-22    145.63
2017-06-23    146.28
2017-06-26    145.82
2017-06-27    143.73
2017-06-28    145.83
2017-06-29    143.68
2017-06-30    144.02
Name: Close, dtype: float64
stock['Close']['2017-06-01']
153.18000000000001
stock.Close['2017-06-01']
153.18000000000001
stock['Close'][0]
153.18000000000001
stock[['Close']]







































































































Close
Date
2017-06-01 153.18
2017-06-02 155.45
2017-06-05 153.93
2017-06-06 154.45
2017-06-07 155.37
2017-06-08 154.99
2017-06-09 148.98
2017-06-12 145.42
2017-06-13 146.59
2017-06-14 145.16
2017-06-15 144.29
2017-06-16 142.27
2017-06-19 146.34
2017-06-20 145.01
2017-06-21 145.87
2017-06-22 145.63
2017-06-23 146.28
2017-06-26 145.82
2017-06-27 143.73
2017-06-28 145.83
2017-06-29 143.68
2017-06-30 144.02

stock[['Open','Close']]































































































































Open Close
Date
2017-06-01 153.17 153.18
2017-06-02 153.58 155.45
2017-06-05 154.34 153.93
2017-06-06 153.90 154.45
2017-06-07 155.02 155.37
2017-06-08 155.25 154.99
2017-06-09 155.19 148.98
2017-06-12 145.74 145.42
2017-06-13 147.16 146.59
2017-06-14 147.50 145.16
2017-06-15 143.32 144.29
2017-06-16 143.78 142.27
2017-06-19 143.66 146.34
2017-06-20 146.87 145.01
2017-06-21 145.52 145.87
2017-06-22 145.77 145.63
2017-06-23 145.13 146.28
2017-06-26 147.17 145.82
2017-06-27 145.01 143.73
2017-06-28 144.49 145.83
2017-06-29 144.71 143.68
2017-06-30 144.45 144.02

stock.loc['2017-06-01', 'Close']
153.18000000000001
stock.loc[:, 'Close']
Date
2017-06-01    153.18
2017-06-02    155.45
2017-06-05    153.93
2017-06-06    154.45
2017-06-07    155.37
2017-06-08    154.99
2017-06-09    148.98
2017-06-12    145.42
2017-06-13    146.59
2017-06-14    145.16
2017-06-15    144.29
2017-06-16    142.27
2017-06-19    146.34
2017-06-20    145.01
2017-06-21    145.87
2017-06-22    145.63
2017-06-23    146.28
2017-06-26    145.82
2017-06-27    143.73
2017-06-28    145.83
2017-06-29    143.68
2017-06-30    144.02
Name: Close, dtype: float64
stock.loc['2017-06-01':'2017-06-05', 'Close']
Date
2017-06-01    153.18
2017-06-02    155.45
2017-06-05    153.93
Name: Close, dtype: float64
stock.loc['2017-06-01':'2017-06-05', 'Open':'Close']










































Open High Low Close
Date
2017-06-01 153.17 153.33 152.22 153.18
2017-06-02 153.58 155.45 152.89 155.45
2017-06-05 154.34 154.45 153.46 153.93

stock.loc['2017-06-01':'2017-06-05', ['Open', 'Close']]
































Open Close
Date
2017-06-01 153.17 153.18
2017-06-02 153.58 155.45
2017-06-05 154.34 153.93

stock.iloc[0,3]
153.18000000000001
stock.iloc[0:2, 0:3]































Open High Low
Date
2017-06-01 153.17 153.33 152.22
2017-06-02 153.58 155.45 152.89

stock.iloc[0:2, :]







































Open High Low Close Volume
Date
2017-06-01 153.17 153.33 152.22 153.18 16404088
2017-06-02 153.58 155.45 152.89 155.45 27770715

stock.Volume > 5e7
Date
2017-06-01    False
2017-06-02    False
2017-06-05    False
2017-06-06    False
2017-06-07    False
2017-06-08    False
2017-06-09     True
2017-06-12     True
2017-06-13    False
2017-06-14    False
2017-06-15    False
2017-06-16     True
2017-06-19    False
2017-06-20    False
2017-06-21    False
2017-06-22    False
2017-06-23    False
2017-06-26    False
2017-06-27    False
2017-06-28    False
2017-06-29    False
2017-06-30    False
Name: Volume, dtype: bool
stock[stock.Volume > 5e7]















































Open High Low Close Volume
Date
2017-06-09 155.19 155.19 146.02 148.98 64882657
2017-06-12 145.74 146.09 142.51 145.42 72307330
2017-06-16 143.78 144.50 142.20 142.27 50361093

stock[stock.Close > stock.Open]































































































Open High Low Close Volume
Date
2017-06-01 153.17 153.33 152.22 153.18 16404088
2017-06-02 153.58 155.45 152.89 155.45 27770715
2017-06-06 153.90 155.81 153.78 154.45 26624926
2017-06-07 155.02 155.98 154.48 155.37 21069647
2017-06-15 143.32 144.48 142.21 144.29 32165373
2017-06-19 143.66 146.74 143.66 146.34 32541404
2017-06-21 145.52 146.07 144.61 145.87 21265751
2017-06-23 145.13 147.16 145.11 146.28 35439389
2017-06-28 144.49 146.11 143.16 145.83 22082432

stock[(stock.Close > stock.Open) & (stock.Volume > 3e7)]















































Open High Low Close Volume
Date
2017-06-15 143.32 144.48 142.21 144.29 32165373
2017-06-19 143.66 146.74 143.66 146.34 32541404
2017-06-23 145.13 147.16 145.11 146.28 35439389

stock[(stock.Close > stock.Open) | (stock.Volume > 5e7)]























































































































Open High Low Close Volume
Date
2017-06-01 153.17 153.33 152.22 153.18 16404088
2017-06-02 153.58 155.45 152.89 155.45 27770715
2017-06-06 153.90 155.81 153.78 154.45 26624926
2017-06-07 155.02 155.98 154.48 155.37 21069647
2017-06-09 155.19 155.19 146.02 148.98 64882657
2017-06-12 145.74 146.09 142.51 145.42 72307330
2017-06-15 143.32 144.48 142.21 144.29 32165373
2017-06-16 143.78 144.50 142.20 142.27 50361093
2017-06-19 143.66 146.74 143.66 146.34 32541404
2017-06-21 145.52 146.07 144.61 145.87 21265751
2017-06-23 145.13 147.16 145.11 146.28 35439389
2017-06-28 144.49 146.11 143.16 145.83 22082432

stock['fluctuation'] = stock['High'] - stock['Low']
stock.head()






































































Open High Low Close Volume fluctuation
Date
2017-06-01 153.17 153.33 152.22 153.18 16404088 1.11
2017-06-02 153.58 155.45 152.89 155.45 27770715 2.56
2017-06-05 154.34 154.45 153.46 153.93 25331662 0.99
2017-06-06 153.90 155.81 153.78 154.45 26624926 2.03
2017-06-07 155.02 155.98 154.48 155.37 21069647 1.50

stock['Close'].shift(1)
Date
2017-06-01       NaN
2017-06-02    153.18
2017-06-05    155.45
2017-06-06    153.93
2017-06-07    154.45
2017-06-08    155.37
2017-06-09    154.99
2017-06-12    148.98
2017-06-13    145.42
2017-06-14    146.59
2017-06-15    145.16
2017-06-16    144.29
2017-06-19    142.27
2017-06-20    146.34
2017-06-21    145.01
2017-06-22    145.87
2017-06-23    145.63
2017-06-26    146.28
2017-06-27    145.82
2017-06-28    143.73
2017-06-29    145.83
2017-06-30    143.68
Name: Close, dtype: float64
stock['Change'] = stock['Close'] - stock['Close'].shift(1)
stock.head()













































































Open High Low Close Volume fluctuation Change
Date
2017-06-01 153.17 153.33 152.22 153.18 16404088 1.11 NaN
2017-06-02 153.58 155.45 152.89 155.45 27770715 2.56 2.27
2017-06-05 154.34 154.45 153.46 153.93 25331662 0.99 -1.52
2017-06-06 153.90 155.81 153.78 154.45 26624926 2.03 0.52
2017-06-07 155.02 155.98 154.48 155.37 21069647 1.50 0.92

本课作业

说明:以下问题请编写代码获得结果。

第一题:2017年6月22日当天的收盘价是多少?

##我自己输入的是这条:stock.loc['2017-06-22','close'],结果错了.参照前面的作业,输入后面这条
stock['Close']['2017-06-22']
145.63

第二题: 成交量超过7千万的是哪一天?

###我自己先尝试乱输入看看呢:stock['volume'>7e5]
####错得离谱,两点。 1.7千万的科学计数,是7e7; 2.stock.volume>7e7,才是正确的表示,
stock.Volume> 7e7
Date
2017-06-01    False
2017-06-02    False
2017-06-05    False
2017-06-06    False
2017-06-07    False
2017-06-08    False
2017-06-09    False
2017-06-12     True
2017-06-13    False
2017-06-14    False
2017-06-15    False
2017-06-16    False
2017-06-19    False
2017-06-20    False
2017-06-21    False
2017-06-22    False
2017-06-23    False
2017-06-26    False
2017-06-27    False
2017-06-28    False
2017-06-29    False
2017-06-30    False
Name: Volume, dtype: bool
###规则化一下呢,答案是6月12号
stock[stock.Volume> 7e7]





































Open High Low Close Volume fluctuation Change
Date
2017-06-12 145.74 146.09 142.51 145.42 72307330 3.58 -3.56

第三题:在2017年6月28日,收盘价减去开盘价是多少?

###我自己尝试着输入看看:stock[stock.Date='2017-06-28',stock.Close-stock.Open],结果错得离谱
stock['Close']-stock['Open']
###使用笨办法,直接算出所有的来,但是不知道如何筛选。应该可以把这段运算赋值给一个“差值”,然后在从“差值”中筛选
Date
2017-06-01    0.01
2017-06-02    1.87
2017-06-05   -0.41
2017-06-06    0.55
2017-06-07    0.35
2017-06-08   -0.26
2017-06-09   -6.21
2017-06-12   -0.32
2017-06-13   -0.57
2017-06-14   -2.34
2017-06-15    0.97
2017-06-16   -1.51
2017-06-19    2.68
2017-06-20   -1.86
2017-06-21    0.35
2017-06-22   -0.14
2017-06-23    1.15
2017-06-26   -1.35
2017-06-27   -1.28
2017-06-28    1.34
2017-06-29   -1.03
2017-06-30   -0.43
dtype: float64

答案是1.34

第四题: 开盘价低于144并且成交量大于5千万那一天的收盘价是多少?
参考此条stock[(stock.Close > stock.Open) & (stock.Volume > 3e7)]

stock[(stock.Open<144)&(stock.Volume>5e7)]





































Open High Low Close Volume fluctuation Change
Date
2017-06-16 143.78 144.5 142.2 142.27 50361093 2.3 -2.02

stock['Change'] = stock['Close'] - stock['Close'].shift(1)
stock























































































































































































































































Open High Low Close Volume fluctuation Change
Date
2017-06-01 153.17 153.33 152.22 153.18 16404088 1.11 NaN
2017-06-02 153.58 155.45 152.89 155.45 27770715 2.56 2.27
2017-06-05 154.34 154.45 153.46 153.93 25331662 0.99 -1.52
2017-06-06 153.90 155.81 153.78 154.45 26624926 2.03 0.52
2017-06-07 155.02 155.98 154.48 155.37 21069647 1.50 0.92
2017-06-08 155.25 155.54 154.40 154.99 21250798 1.14 -0.38
2017-06-09 155.19 155.19 146.02 148.98 64882657 9.17 -6.01
2017-06-12 145.74 146.09 142.51 145.42 72307330 3.58 -3.56
2017-06-13 147.16 147.45 145.15 146.59 34165445 2.30 1.17
2017-06-14 147.50 147.50 143.84 145.16 31531232 3.66 -1.43
2017-06-15 143.32 144.48 142.21 144.29 32165373 2.27 -0.87
2017-06-16 143.78 144.50 142.20 142.27 50361093 2.30 -2.02
2017-06-19 143.66 146.74 143.66 146.34 32541404 3.08 4.07
2017-06-20 146.87 146.87 144.94 145.01 24900073 1.93 -1.33
2017-06-21 145.52 146.07 144.61 145.87 21265751 1.46 0.86
2017-06-22 145.77 146.70 145.12 145.63 19106294 1.58 -0.24
2017-06-23 145.13 147.16 145.11 146.28 35439389 2.05 0.65
2017-06-26 147.17 148.28 145.38 145.82 25692361 2.90 -0.46
2017-06-27 145.01 146.16 143.62 143.73 24761891 2.54 -2.09
2017-06-28 144.49 146.11 143.16 145.83 22082432 2.95 2.10
2017-06-29 144.71 145.13 142.28 143.68 31499368 2.85 -2.15
2017-06-30 144.45 144.96 143.78 144.02 23024107 1.18 0.34


你可能感兴趣的:(大数据作业 初稿)