数据分析案例-股票数据分析

简介: 数据分析案例-股票数据分析

导入数据

import pandas as pd
import warnings
warnings.filterwarnings("ignore")
df1 = pd.read_csv("000001_daily.csv")
df2 = pd.read_csv("000001_5min.csv")
df1.head()


时间类型转换

将 df1 和 df2 的 日期 列转换为 pandas 支持的时间格式

df1['日期'] = pd.to_datetime(df1['日期'])
df2['时间'] = pd.to_datetime(df2['时间'])
# df1['日期'] = df1['日期'].astype('datetime64[ns]')

日期筛选

按区间筛选

筛选出 df2 时间在 2021-08-03 09:35:00 与 2021-08-04 15:00:00 之间的数据


df2[(df2['时间'] > '2021-08-03 09:35:00') & (df2['时间'] < '2021-08-04 15:00:00')]

按指定时间筛选

筛选 df2 时间为 2021-08-03 的全部数据


df2.set_index('时间').truncate(after=pd.Timestamp('2021-08-03'))


金融计算

涨跌额

df1 新增一列 涨跌,计算前后两日收盘价之差


注意:虽然我们的df1包含涨跌额列,但是这个操作很常用,所以练习一下


df1['涨跌']  = df1.收盘.diff()

涨跌幅

df1 新增一列 涨跌变化率,计算前后两日收盘价之差的变化率


注意:虽然我们的df1包含涨跌幅列,但是这个操作很常用,所以练习一下,结果可以用于验证


df1['涨跌变化率'] = (df1.收盘.pct_change()).apply(lambda x: format(x, '.2%'))

移动均值

计算收盘价的5日移动均线


df1.收盘.rolling(window=5).mean()
0          NaN
1          NaN
2          NaN
3          NaN
4        8.314
         ...  
1141    18.672
1142    18.792
1143    19.298
1144    19.650
1145    19.676
Name: 收盘, Length: 1146, dtype: float64

移动均值(可视化)

计算并绘制收盘价的5日移动均线


df1.收盘.rolling(window=5).mean().plot()


移动均值(可视化)

同时计算并绘制 df1 的收盘价、5日均线、20日均线

df1.set_index("日期")['收盘'].plot()
df1.set_index("日期")['收盘'].rolling(5).mean().plot()
df1.set_index("日期")['收盘'].rolling(20).mean().plot()

指数移动平均值(EMA)

根据 df1 计算 EMA20


df1['EMA20'] = df1['收盘'].ewm(span=20,min_periods=0,adjust=False,ignore_na=False).mean()

MACD

计算 df1 的 MACD 指标


exp1 = df1['收盘'].ewm(span=12, adjust=False).mean()
exp2 = df1['收盘'].ewm(span=26, adjust=False).mean()
df1['MACD'] = exp1 - exp2
df1['Signal line'] = df1['MACD'].ewm(span=9, adjust=False).mean()

布林指标

计算并绘制布林指标,计算方法参考百度百科


df1['former 30 days rolling Close mean'] = df1['收盘'].rolling(20).mean()
df1['upper bound'] = df1['former 30 days rolling Close mean'] + \
    2*df1['收盘'].rolling(20).std()  # 在这里我们取20天内的标准差
df1['lower bound'] = df1['former 30 days rolling Close mean'] - \
    2*df1['收盘'].rolling(20).std()
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['Songti SC'] #设置中文,如果本句代码导致失效,可以点击https://mp.weixin.qq.com/s/WKOGvQP-6QUAP00ZXjhweg
df1.set_index("日期")[['收盘', 'former 30 days rolling Close mean','upper bound','lower bound' ]].plot(figsize=(16, 6))
plt.show()


日期移动

移动值

将 df1 的索引设置为日期,将 df1 数据向后移动一天


df1.set_index('日期').shift(1)


移动索引

将 df1 的索引设置为日期,并将全部日期向后移动一天


import datetime
df1.set_index('日期').shift(freq=datetime.timedelta(1))


日期重采样

日 -> 周

按周对 df1 进行重采样,保留每周最后一个数据


df1.set_index('日期').resample('W').last()

日 -> 月

按月对 df1 进行重采样,保留每月最后一个数据


df1.set_index('日期').resample('M').last()


分钟 -> 日

按日对 df2 进行重采样,保留每天最后一个数据


df2.set_index('时间').resample('D').last()

低频 -> 高频

将 df2 的 5分钟 数据改为 3分钟,缺失数据向前填充

df_3min = df2.set_index('时间').resample('3min').last()
df_3min.ffill()

目录
相关文章
|
6月前
|
数据采集 存储 数据挖掘
【优秀python数据分析案例】基于Python书旗网小说网站数据采集与分析的设计与实现
本文介绍了一个基于Python的书旗网小说网站数据采集与分析系统,通过自动化爬虫收集小说数据,利用Pandas进行数据处理,并通过Matplotlib和Seaborn等库进行数据可视化,旨在揭示用户喜好和市场趋势,为图书出版行业提供决策支持。
512 6
【优秀python数据分析案例】基于Python书旗网小说网站数据采集与分析的设计与实现
|
2月前
|
数据采集 数据可视化 索引
Pandas数据应用:股票数据分析
本文介绍了如何使用Pandas库进行股票数据分析。首先,通过pip安装并导入Pandas库。接着,从本地CSV文件读取股票数据,并解决常见的解析错误。然后,利用head()、info()等函数查看数据基本信息,进行数据清洗,处理缺失值和重复数据。再者,结合Matplotlib和Seaborn进行数据可视化,绘制收盘价折线图。最后,进行时间序列分析,设置日期索引、重采样和计算移动平均线。通过这些步骤,帮助读者掌握Pandas在股票数据分析中的应用。
95 5
|
2月前
|
机器学习/深度学习 数据采集 DataWorks
数据分析经典案例重现:使用DataWorks Notebook 实现Kaggle竞赛之房价预测,成为数据分析大神!
Python是目前当之无愧的数据分析第一语言,大量的数据科学家使用Python来完成各种各样的数据科学任务。本文以Kaggle竞赛中的房价预测为例,结合DataWorks Notebook,完成数据加载、数据探索、数据可视化、数据清洗、特征分析、特征处理、机器学习、回归预测等步骤,主要Python工具是Pandas和SKLearn。本文中仅仅使用了线性回归这一最基本的机器学习模型,读者可以自行尝试其他更加复杂模型,比如随机森林、支持向量机、XGBoost等。
|
4月前
|
数据挖掘 UED
ChatGPT数据分析——探索性分析
ChatGPT数据分析——探索性分析
80 1
|
4月前
|
数据可视化 数据挖掘 数据处理
ChatGPT数据分析应用——热力图分析
ChatGPT数据分析应用——热力图分析
175 1
|
4月前
|
数据挖掘
ChatGPT在常用的数据分析方法中的应用(分组分析)
ChatGPT在常用的数据分析方法中的应用(分组分析)
101 1
|
4月前
|
数据挖掘 数据处理
ChatGPT在常用的数据分析方法中的应用(交叉分析)
ChatGPT在常用的数据分析方法中的应用(交叉分析)
77 1
|
4月前
|
机器学习/深度学习 数据采集 数据可视化
如何理解数据分析及数据的预处理,分析建模,可视化
如何理解数据分析及数据的预处理,分析建模,可视化
95 0
|
4月前
|
数据挖掘
ChatGPT在常用的数据分析方法中的应用(对比分析)
ChatGPT在常用的数据分析方法中的应用(对比分析)
87 0
|
5月前
|
机器学习/深度学习 人工智能 数据挖掘
数据分析师是在多个行业中专门从事数据搜集、整理和分析的专业人员
数据分析师是在多个行业中专门从事数据搜集、整理和分析的专业人员
57 3