Pandas 数据分析(二)【股票数据】

股票数据分析

  • 写在前面
  • 题目背景
    • [021 加载股票数据到CSV文件](#021 加载股票数据到CSV文件)
    • [022 查看基本信息和数据统计](#022 查看基本信息和数据统计)
    • [023 更改索引列为普通数据列](#023 更改索引列为普通数据列)
    • [024 给数据添加月份和年份](#024 给数据添加月份和年份)
    • [025 计算每年的平均收盘价](#025 计算每年的平均收盘价)
    • [026 找到收盘价最低的数据行](#026 找到收盘价最低的数据行)
    • [027 筛选出部分数据列](#027 筛选出部分数据列)
    • [028 设置日期列为索引列](#028 设置日期列为索引列)
    • [029 删除不需要的数据列](#029 删除不需要的数据列)
    • [030 对数据列重命名](#030 对数据列重命名)
  • 结语

写在前面

在数据分析的领域中,股票市场是一个非常热门且富有挑战性的分析对象。通过对股票数据的深入分析,我们不仅能够了解市场趋势,还能为投资决策提供有力支持。本文将通过一个包含日期、开盘价、最高价、最低价、收盘价以及交易量的股票数据集,结合pandas库完成10道数据分析题目。每个问题都将帮助我们从不同角度探索股票市场的动态变化,让你在掌握数据分析技巧的同时,对股票市场的理解更上一层楼。

题目背景

  • 题目数据包含日期(Date),开盘价(Open),最高价(High),最低价(Low),关盘价(Close),交易量(Volume

021 加载股票数据到CSV文件

我们可以先看看当前csv文件内容,它处在当前路径下面,我们编写代码的地方是图中的pandaExp.py文件:

代码:

python 复制代码
import pandas as pd
df=pd.read_csv("./股票数据.csv")
print(df)

运行结果:


022 查看基本信息和数据统计

  • 这里涉及的方法上一篇已经谈过,可以看看本专栏的篇(一)。
python 复制代码
import pandas as pd
df=pd.read_csv("./股票数据.csv")
print(df.info())
print()
print(df.describe())

运行结果:


023 更改索引列为普通数据列

python 复制代码
import pandas as pd
df=pd.read_csv("./股票数据.csv",index_col=0)
print(df.head(5))
print(df.columns)

这里我们index_col=0意思是将第一列作为索引列,此时打印的效果是下面这样的,但是题目要求我们的是将这里的索引列也变成数据列。

其实直接调用df.reset_index(inplace=True)即可,意思是重新设置索引列(恢复成为默认的数字索引),并且是原地在df上做修改,不用接收返回值。

python 复制代码
import pandas as pd
df=pd.read_csv("./股票数据.csv",index_col=0)

df.reset_index(inplace=True)
print(df.head(5))
print(df.columns)

024 给数据添加月份和年份

python 复制代码
import pandas as pd
df = pd.read_csv("./股票数据.csv")
# 从这里开始完成题目

df["Date"] = pd.to_datetime(df["Date"])
df["Year"] = df["Date"].dt.year
df["Month"] = df["Date"].dt.month

print(df)

025 计算每年的平均收盘价

  • df.groupby("Year")是按照年份聚合分组
  • ["Close"]是取出分组后的Close这一列
  • .mean()是求均值
python 复制代码
import pandas as pd
df = pd.read_csv("./股票数据.csv")
# 从这里开始完成题目
df["Date"] = pd.to_datetime(df["Date"])
df["Year"] = df["Date"].dt.year
print(df.groupby("Year")["Close"].mean())

本题是目前第一个分组聚合统计,要深刻体会这种思想


026 找到收盘价最低的数据行

本题找最小行,最容易想到的是df["Close"].min()方法,这样确实可以找到最小值,但是我们找不到最小值所在的行,也就找不到最小行的其他信息。如果我们要先找最小行所在的索引,可以调用df.argmin()方法,它会返回最小行所在索引。根据df.loc[["索引"]]就可以访问到了。需要注意的是df.loc方法如果打一个[],返回的是Series对象,如果打两个[[]]返回的是DataFrame对象。

  • 这里我们返回DataFrame对象。
python 复制代码
import pandas as pd
df = pd.read_csv("./股票数据.csv")
# 从这里开始完成题目
min_index = df["Close"].argmin()

print(df.loc[[min_index]])

027 筛选出部分数据列

python 复制代码
import pandas as pd
df = pd.read_csv("./股票数据.csv")
# 从这里开始完成题目
print(df.head(3))
df_new = df[["Date", "Open", "Close", "Volume"]]
print(df_new.head(3))

028 设置日期列为索引列

python 复制代码
import pandas as pd
df = pd.read_csv("./股票数据.csv")
# 从这里开始完成题目
print(df.head(3))
df.set_index("Date",inplace=True) #原地修改Date为索引列
print()
print(df.head(3))

029 删除不需要的数据列

python 复制代码
import pandas as pd
df = pd.read_csv("./股票数据.csv")
# 从这里开始完成题目
df.drop(columns=["High","Low"], inplace=True)
print(df.head(3))

030 对数据列重命名

python 复制代码
import pandas as pd
df = pd.read_csv("./股票数据.csv")
# 从这里开始完成题目
print(df.head(3))
df.columns=["D", "O", "H", "L", "C", "V"]
print(df.head(3))

结语

通过本博客,我们不仅练习了pandas库的基本操作,还学习了如何从股票数据中提取有价值的信息。每道题目都带有一定的实用性,帮助我们深入理解如何处理和分析复杂的数据集。

相关推荐
Coder_Boy_2 分钟前
基于SpringAI的在线考试系统设计-用户管理模块设计
java·大数据·人工智能·spring boot·spring cloud
虫小宝7 分钟前
天猫返利app搜索系统优化:基于Elasticsearch的商品导购引擎设计
大数据·elasticsearch·搜索引擎
:mnong9 分钟前
大语言模型提示词生成交互原型案例分享
大数据·数据库·人工智能
小北方城市网9 分钟前
第 5 课:服务网格(Istio)实战|大规模微服务的流量与安全治理体系
大数据·开发语言·人工智能·python·安全·微服务·istio
AC赳赳老秦10 分钟前
Go语言微服务文档自动化生成:基于DeepSeek的智能解析实践
大数据·开发语言·人工智能·微服务·golang·自动化·deepseek
证能量少女11 分钟前
2026 中专大数据与会计专业可考的会计相关证书有哪些
大数据
AIGC合规助手21 分钟前
最新I江苏算法、大模型备案攻略+补贴政策汇总
大数据·人工智能·安全·语言模型·aigc
wiss6625 分钟前
国产知识文档系统深度测评:功能、优势与选型指南
大数据·人工智能·企业知识管理·文件数据利用·电子文档管理系统
龙亘川26 分钟前
深度解析智慧路灯大数据平台:物联网 + 大数据构建智慧城市感知底座
大数据·物联网·智慧城市·智慧路灯·智慧城管
毕设源码-钟学长32 分钟前
【开题答辩全过程】以 基于Hadoop的新闻推荐系统为例,包含答辩的问题和答案
大数据·hadoop·分布式