这里是南京财经大学的Mooc课程的个人学习笔记,课程网址是:https://www.icourse163.org/course/NJUE-1458311167,课程是免费的,老师讲的很好很认真,欢迎学习。
数据集
网盘下载
提取码: hrmi
import pandas as pd
# 显示所有列
pd.set_option('display.max_columns', None)
# 显示所有行
pd.set_option('display.max_rows', None)
# 显示宽度为1000
pd.set_option('display.width', 1000)
# 注意,这里读取的文件带有中文,防止出错的方法就是把文件名改成英文的,或者加入参数engine='python'
df = pd.read_csv('股票数据.csv', engine='python')
print(df)
设置日期为索引
df = df.set_index('日期')
# 把索引转换为datatime类型
df.index = pd.to_datetime(df.index)
print(df.head(5))
位移操作
print(df.shift(1).head(5))
查看收盘价的变化
print((df['收盘价']-df['收盘价'].shift(-1)).head(55))
查看每个月的股票收盘价趋势
df = df['收盘价'].resample('M').agg(['mean'])
收盘价的可视化
需要导入的包:
import matplotlib.pyplot as plt
输入:
plt.figure(figsize=(8, 4), dpi=100)
plt.plot(df['收盘价'])
plt.show()
收盘价可视化的优化
可以发现上图有很多奇怪的突然下降点,如何处理这些地方?
# 把绘图的Y轴设置成每个点向前取200个数据的平均值
plt.plot(df['收盘价'].rolling(200).mean())
这个图的数据出现了一部分的缺失,原因是一开始的点之前并没有200个点那么多,进行如下优化,加入min_periods=2
plt.figure(figsize=(8, 4), dpi=100)
plt.plot(df['收盘价'].rolling(200, min_periods=2).mean())
plt.show()