Python | AKShare获取A股数据

Python | AKShare获取A股数据
运行环境:jupyter notebook (python 3.12.7) + AKShare 1.16.87

1.安装akshare

# 在Jupyter中直接安装 !pip install akshare --upgrade -i https://pypi.tuna.tsinghua.edu.cn/simple

验证安装成功:

import akshare as ak print("AKShare版本:", ak.__version__)

2.以A股贵州茅台600519为例,获取数据

try: import akshare as ak print("\n尝试使用AKShare获取A股数据示例:") a_stock = ak.stock_zh_a_hist(symbol="600519", period="daily", start_date="20250101", end_date="20250507") print(a_stock.head()) except ImportError: print("\n提示:安装AKShare可获得中国证券市场数据 -> pip install akshare") except Exception as e: print(f"AKShare获取失败:{str(e)}")

运行结果截图:

import akshare as ak import pandas as pd # 设置显示参数 pd.set_option('display.max_columns', None) pd.set_option('display.width', 1000) def get_a_stock_data(symbol, start_date, end_date): """获取A股历史行情数据(自动重试版)""" for _ in range(3): try: df = ak.stock_zh_a_hist( symbol=symbol, period="daily", start_date=start_date, end_date=end_date, adjust="hfq" # 可选参数:hfq后复权, qfq前复权, 空为不复权 ) # 转换日期格式 df['日期'] = pd.to_datetime(df['日期']) df.set_index('日期', inplace=True) # 重命名列(英文列名更方便处理) df = df.rename(columns={ '开盘': 'open', '收盘': 'close', '最高': 'high', '最低': 'low', '成交量': 'volume', '成交额': 'amount', '振幅': 'amplitude', '涨跌幅': 'pct_chg', '涨跌额': 'change', '换手率': 'turnover' }) return df.sort_index() except Exception as e: print(f"获取数据失败,正在重试... ({str(e)})") continue raise ConnectionError("数据获取失败,请检查网络或代码") # 执行数据获取 try: data = get_a_stock_data("600519", "20250101", "20250507") print("\n数据获取成功!前5行数据:") print(data.head()) print("\n基础统计信息:") print(data.describe()) except Exception as e: print("发生错误:", str(e)) print("建议解决方案:") print("1. 检查股票代码格式(需纯数字,不带市场后缀)") print("2. 尝试调整日期格式为YYYYMMDD") print("3. 访问AKShare官网查看最新接口文档:https://www.akshare.xyz/")

运行结果截图:

Read more

华为OD机试真题2025双机位A卷 Java&Go 实现【采购订单】

华为OD机试真题2025双机位A卷 Java&Go 实现【采购订单】

目录 题目 思路 Code 题目 在一个采购系统中,采购申请(PR)需要经过审批后才能生成采购订单(PO)。每个PR包含商品的单价(假设相同商品的单价一定是一样的)及数量信息。系统要求对商品进行分类处理:单价高于100元的商品需要单独处理,单价低于或等于100元的相同商品可以合并到同一采购订单PO中。针对单价低于100的小额订单,如果量大可以打折购买。 具体规则如下: 如果PR状态为"审批通过",则将其商品加入到PO中。如果PR的状态为"审批拒绝"或"待审批",则忽略改PR,对于单价高于100元的商品、每个商品单独生成一条PO记录。对于单价低于100元的商品,将相同商品的数量合并四到一条PO记录中。如果商品单价<100且商品数量>=100,则单价打9折。 输入描述 第一行包含整数N,表示PR的数量。 接下来N行,每行包含四个用空格分割的整数,按顺序表示:商品ID,

By Ne0inhk
Flutter 组件 analyzer_testing 适配鸿蒙 HarmonyOS 实战:分析器插件测试,构建 AST 仿真与编译器级别静态诊断验证架构

Flutter 组件 analyzer_testing 适配鸿蒙 HarmonyOS 实战:分析器插件测试,构建 AST 仿真与编译器级别静态诊断验证架构

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 analyzer_testing 适配鸿蒙 HarmonyOS 实战:分析器插件测试,构建 AST 仿真与编译器级别静态诊断验证架构 前言 在鸿蒙(OpenHarmony)生态迈向深度定制化研发、涉及高性能自定义 Lint 规则集开发、代码自动化重构工具链及严苛的编译器插件质量底线的背景下,如何实现一套能够精确模拟抽象语法树(AST)、支持在无文件系统环境下执行实时代码分析且具备“像素级”错误定位能力的“分析器测试基座”,已成为决定研发工具链稳定性与代码诊断准确性的命脉。在鸿蒙项目涉及海量 eTS 与 Flutter 代码混合静态检查的复杂场景下,如果开发的分析器插件未经严格的语法全集覆盖测试,由于由于分析引擎的内部状态复杂性,极易由于由于“误报”或“漏报”导致鸿蒙应用在编译期发生难以排查的元数据错误。 我们需要一种能够解耦物理磁盘、支持声明式代码片段输入且具备 AST 结构断言能力的验证方案。 analyzer_testing 为

By Ne0inhk
Apache Curator LeaderSelector 深度解析:分布式领导者选举的优雅实现

Apache Curator LeaderSelector 深度解析:分布式领导者选举的优雅实现

Apache Curator LeaderSelector 深度解析:分布式领导者选举的优雅实现 * 一、领导者选举概述 * 1.1 什么是领导者选举? * 1.2 领导者选举的应用场景 * 二、LeaderSelector 核心使用指南 * 2.1 环境准备 * 2.2 基础使用示例 * 2.3 核心接口详解 * 三、LeaderSelector 工作原理深度剖析 * 3.1 整体架构图 * 3.2 核心原理:基于临时顺序节点 * 3.3 公平性保证 * 3.4 状态管理与异常处理 * 四、高级特性与最佳实践 * 4.1 自动重新入队:autoRequeue() * 4.2 设置参与者

By Ne0inhk
MySQL 动态分区管理:自动化与优化实践

MySQL 动态分区管理:自动化与优化实践

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[[email protected]] 📱个人微信:15279484656 🌐个人导航网站:www.forff.top 💡座右铭:总有人要赢。为什么不能是我呢? * 专栏导航: 码农阿豪系列专栏导航 面试专栏:收集了java相关高频面试题,面试实战总结🍻🎉🖥️ Spring5系列专栏:整理了Spring5重要知识点与实战演练,有案例可直接使用🚀🔧💻 Redis专栏:Redis从零到一学习分享,经验总结,案例实战💐📝💡 全栈系列专栏:海纳百川有容乃大,可能你想要的东西里面都有🤸🌱🚀 目录 * MySQL 动态分区管理:自动化与优化实践 * 一、分区的基本概念 * 二、动态分区的需求 * 三、使用存储过程动态创建分区 * 四、使用事件调度器自动化分区管理 * 五、避免分区冲突

By Ne0inhk