跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Python算法

Python 读取 CSV 数据并筛选股票记录

演示使用 Python 标准库下载并解析 CSV 文件,通过日期和成交量条件筛选特定股票数据。代码已适配 Python 3 环境,修复了旧版本语法问题,增加了对编码和列索引的校验,可直接运行。

HadoopMan发布于 2016/9/19更新于 2026/7/2143 浏览
Python 读取 CSV 数据并筛选股票记录

Python 读取 CSV 数据并筛选股票记录

在处理金融或业务数据时,CSV 是最常见的交换格式之一。下面展示如何用 Python 标准库下载 Yahoo Finance 的股票数据,并按日期和成交量进行筛选。

核心逻辑

脚本主要完成三个步骤:

  1. 下载文件:使用 urllib 获取远程 CSV。
  2. 解析数据:利用 csv 模块逐行读取。
  3. 过滤输出:保留 2016 年之后且成交量大于 5000 万的记录。

注意:原代码基于 Python 2 编写,现代开发建议直接使用 Python 3,以下是适配后的版本。

import urllib.request
import csv

# 定义目标 URL 和本地文件名
target_url = 'http://table.finance.yahoo.com/table.csv?s=000001.sz'
local_file = 'pingan.csv'
output_file = 'pingan_filtered.csv'

# 1. 下载数据
try:
    urllib.request.urlretrieve(target_url, local_file)
except Exception as e:
    print(f"下载失败:{e}")
    exit(1)

# 2. 读取并筛选
with open(local_file, 'r', encoding='utf-8') as rf:
    reader = csv.reader(rf)
    
    # 先读取表头
    headers = next(reader)
    
    with open(output_file, 'w', encoding='utf-8', newline='') as wf:
        writer = csv.writer(wf)
        writer.writerow(headers)
        
        for row in reader:
            # 确保数据列数足够,避免索引越界
            if len(row) > 5:
                # 按日期字符串比较(ISO 格式)
                if row[0] >= "2016-01-01":
                    # 成交量在第 6 列(索引 5),需转换为整数比较
                    try:
                        volume = int(row[5].replace(',', '')) # 处理可能存在的千分位逗号
                        if volume >= 50000000:
                            writer.writerow(row)
                    except ValueError:
                        continue

print("筛选完成")

关键点说明

  • 编码问题:Yahoo Finance 返回的 CSV 通常是 GBK 或 UTF-8,这里显式指定 utf-8。如果报错,尝试改为 gbk。
  • 列索引:不同来源的 CSV 结构不同,务必确认 row[0] 是日期,row[5] 是成交量。实际项目中建议先打印 headers 确认。
  • 异常处理:增加了简单的 try-except 防止因数据格式错误导致程序中断。

这样写既保留了原有逻辑,又解决了 Python 2 到 3 的兼容性问题,同时增强了健壮性。

目录

  1. Python 读取 CSV 数据并筛选股票记录
  2. 核心逻辑
  3. 定义目标 URL 和本地文件名
  4. 1. 下载数据
  5. 2. 读取并筛选
  6. 关键点说明
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 飞算 JavaAI 2.0.0 评测:自然语言编程实战与效率分析
  • 为什么要学习模型和方法论
  • AIOps 实践:基于 Dify 与 LangBot 集成飞书智能体
  • 学习 Python 的 10 个核心理由
  • 模拟算法题详解:替换问号、提莫攻击、Z 字形变换、外观数列与数青蛙
  • Google 秘密计划曝光:AI 或取代人类程序员敲代码
  • Python 网络爬虫高级应用与 Scrapy 框架实战
  • 非技术人员如何利用 AI 开发效率工具与智能体应用
  • Palantir 与 AI 本体论介绍及实例
  • LangChain 实战:工具调用与结构化输出
  • Dify 单独启动前端 Docker 容器
  • ComfyUI 可视化搭建教程:构建 AI 绘画工作流
  • 基于 LangGraph 构建带记忆与人工干预的智能搜索机器人
  • 算法实战:位运算解决两数之和与唯一数字问题
  • GitHub Copilot 配置避坑指南与安全策略
  • AnimeGANv2 WebUI 集成 OAuth 登录与权限控制方案
  • Isaac Lab 机器人强化学习:配置架构、添加流程与调参技巧
  • 近五年体内微纳米机器人赋能肿瘤精准治疗综述:聚焦 GBM
  • YOLO26-Pose 零样本姿态估计实战:从春晚机器人看通用视觉智能
  • Sonic 表情生成算法:Transformer 与 CNN 混合架构解析

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online