当前位置: 首页 > article >正文

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

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

代码实现:

import pandas as pd
import matplotlib.pyplot as plt

class StockAnalysis:
    def __init__(self, csv_file):
        """
        初始化股票数据分析类
        :param csv_file: 包含股票数据的CSV文件路径
        """
        self.csv_file = csv_file
        self.data = None

    def 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 文件内容,文件格式应包含以下列:

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),并添加标记点。

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

数据加载成功!
      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.kler.cn/a/417602.html

相关文章:

  • ASP.NET Core 中使用依赖注入 (DI) 容器获取并执行自定义服务
  • Windows Docker笔记-安装docker
  • php反序列化含CTF实战
  • JAVA_内部类
  • Linux中安装rabbitMQ
  • JVM监控和管理工具
  • IDEA Windows\Linux 快捷键
  • BP插件的首个Demo
  • transformers bert-base-uncased情感分析
  • jdk8没有Files.readString()
  • Refit 使用详解
  • 用MATLAB符号工具建立机器人的动力学模型
  • 抖店飞鸽客服自动化插件-自动回复或自动转接会话
  • Qt 中的 UiTools 详解
  • 智能堆叠,集群和IRF
  • vue3+typescript自定义input组件
  • 【课堂笔记】隐私计算实训营第四期:“隐语”PIR功能及使用介绍
  • 【Python网络爬虫笔记】2-HTTP协议中网络爬虫需要的请求头和响应头内容
  • Z2400046 基于JAVA+SSM+MYSQL的高校运动会管理系统的设计与实现 源码 配置 文档
  • Nginx:ssl
  • 算法练习——二分算法
  • Linux的SSH远程管理及安全配置
  • [OpenHarmony5.0][Docker][环境]OpenHarmony5.0 Docker pull线上镜像方式构建编译环境
  • ESP32-S3模组上跑通ES8388(8)
  • android studio Terminal控制台命令打包 apk
  • 0.shell 脚本执行方式