python股票数据分析(Pandas)练习

news/2024/12/2 14:11:09/

需求:
使用pandas读取一个CSV文件,文件内容包括股票名称、价格和交易量。完成以下任务:
找出价格最高的股票;
计算总交易量;
绘制价格折线图。

代码实现:

python">import pandas as pd
import matplotlib.pyplot as pltclass StockAnalysis:def __init__(self, csv_file):"""初始化股票数据分析类:param csv_file: 包含股票数据的CSV文件路径"""self.csv_file = csv_fileself.data = Nonedef load_data(self):"""加载CSV文件数据到Pandas DataFrame"""try:self.data = pd.read_csv(self.csv_file)print("数据加载成功!")print(self.data.head())  # 打印前5行数据进行检查except FileNotFoundError:print("文件未找到,请检查文件路径!")def analyze_data(self):"""分析股票数据:找出价格最高的股票和计算总交易量"""if self.data is not None:# 找出价格最高的股票max_price_row = self.data.loc[self.data['Price'].idxmax()]print(f"价格最高的股票是:{max_price_row['Stock']},价格为:{max_price_row['Price']}")# 计算总交易量total_volume = self.data['Volume'].sum()print(f"总交易量为:{total_volume}")else:print("数据未加载,无法进行分析!")def plot_price_line_chart(self):"""绘制股票价格折线图"""if self.data is not None:# 绘制折线图plt.figure(figsize=(10, 6))plt.plot(self.data['Stock'], self.data['Price'], marker='o', color='b', label='Price')plt.title("Stock Prices", fontsize=16)plt.xlabel("Stock", fontsize=12)plt.ylabel("Price", fontsize=12)plt.grid(axis='y', linestyle='--', alpha=0.7)plt.legend(fontsize=10)plt.tight_layout()plt.show()else:print("数据未加载,无法绘制图表!")if __name__ == "__main__":# 示例CSV文件路径(需要替换为实际路径)csv_file_path = "stock_data.csv"# 创建股票数据分析类的实例analysis = StockAnalysis(csv_file_path)# 加载数据analysis.load_data()# 数据分析analysis.analyze_data()# 绘制股票价格折线图analysis.plot_price_line_chart()

示例 CSV 文件内容 (stock_data.csv)
以下是一个示例 CSV 文件内容,文件格式应包含以下列:

python">Stock,Price,Volume
Apple,150.5,120000
Google,2800.8,50000
Amazon,3400.9,80000
Microsoft,299.7,70000
Tesla,720.4,60000

代码功能说明

加载数据:
使用 pd.read_csv() 加载 CSV 文件到 Pandas DataFrame 中。
打印文件前 5 行数据以检查文件是否加载成功。

分析数据:
使用 idxmax() 找出价格最高的股票及其价格。
使用 sum() 计算所有股票的总交易量。

绘制折线图:
使用 Matplotlib 绘制股票价格折线图。
横轴为股票名称(Stock),纵轴为价格(Price),并添加标记点。

运行效果:
在这里插入图片描述

python">数据加载成功!Stock   Price  Volume
0     Apple   150.5  120000
1    Google  2800.8   50000
2    Amazon  3400.9   80000
3  Microsoft   299.7   70000
4     Tesla   720.4   60000价格最高的股票是:Amazon,价格为:3400.9
总交易量为:380000

折线图
X 轴:股票名称(Apple, Google, Amazon…)。
Y 轴:对应股票价格。
折线带有标记点,展示股票价格的趋势。


http://www.ppmy.cn/news/1551777.html

相关文章

C++基础:muduo库学习记录

2024/11/26-2024/11/2 :   记录一下在自己学习muduo库时对一些概念的理解和实现。 reference: [1]CMuduo网络库:简介及使用 [2]Linux-C网络编程之epoll函数 [3]Linux平台下muduo网络库源码编译安装 目录 一、基础概念1.1 阻塞 or 非阻塞 同步 or 异步1…

pgsql指令

linux 在安装pgsql的服务器上 root是用户名,test是数据库名 psql -U root -d test登录后显示,12,6是版本号 psql (12.6) 查询所有表 \dt查询表结构 \d table_name查询表所属 \dp manual_logistics_logSELECT n.nspname AS table_schema,c.relname …

Spring Security6 OAuth2 实现流程

一 通用的权限框架需求 1 响应数据格式需要统一 示例 { "code": "success", "message": "description", "data": null } ps:code: 状态码,后台定义给前端用,比如“token.expired”,前…

AJAX一、axios使用,url组成(协议,域名,资源路径)查询参数和化简,错误处理,请求/响应报文,状态码,接口文档,

一、AJAX是什么 概念 &#xff1a; AJAX是一种与服务器&#xff08;后端&#xff09;通信的技术 二、请求库axios的基本用法 1导包 2使用 // 1. 发请求 axios({ url: 请求地址 }).then(res > { // 2.接收并使用数据 }) <body><p class"province"…

游戏引擎学习第26天

编程实际游戏的第一天 在第一天的编程中&#xff0c;目标是开始编写游戏的实际部分。虽然之前有一个原型层已经完成&#xff0c;但目前这个层次只是为了快速开发和验证游戏的基本功能&#xff0c;并不适合直接发布给终端用户。虽然这个原型层足够让游戏开发顺利进行&#xff0…

学习threejs,使用CubeCamera相机创建反光效果

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️CubeCamera 立方体相机 二、…

具有多个表盘、心率传感器、指南针和游戏的 DIY 智能手表

在此&#xff0c;我们将使用所学到的知识&#xff0c;结合使用硬件和软件组件从头开始创建自己的智能手表。在项目的这一部分&#xff0c;您将被指导完成组装硬件组件、设置软件以及配置智能手表的设置和功能的过程。到本项目结束时&#xff0c;您将拥有一款功能齐全的智能手表…

win32com python 操作wps 解决修改 表格触发关闭 其他excel的功能

win32com python 操作wps 是很方便的一个东西 之前唯一的缺点就是会关闭wps的表格。 解决思路 新开wps 进程来处理 import os import subprocess import win32com.client as win32 import timedata [] def get_col_value(sheet):# 参数设置row_index 2 # 第二行start_colum…