Python商业数据存取

news2025/2/25 5:56:32

🐳 我正在和鲸社区参加“商业数据分析训练营活动” https://www.heywhale.com/home/competition/6487de6649463ee38dbaf58b ,以下是我的学习笔记:

学习主题:Python商业数据存取

日期:2023.9.6

关键概念/知识点:

  • 读取数据时随机预览信息
  • 读取指定列数据
  • tushare库
  • DataReader包
  • 为数据增加列
  • 数据可视化
  • 数据分组和聚合

掌握的新函数/方法:

  • data_csv.sample()
  • data_csv[[‘列名’, ‘列名’]]

代码举例

读取数据时随机预览信息:

data_csv.sample(10)  # 随机获取10条信息  

读取指定列数据:

data_csv[['open', 'close']]  # 获取open和close列

Tushare是一个免费、开源的python财经数据接口包,它拥有丰富的数据内容,比如股票、基金、期货、数据货币等行情数据。Tushare返回的绝大部分的数据格式都是pandas中DataFrame类型。

  1. 安装tushare库
# !pip install tushare -i https://pypi.douban.com/simple/ #从指定镜像下载安装工具包,镜像URL可自行修改
  1. 导入tushare库
import tushare as ts
  1. 获取股票数据
# ts.get_hist_data( )函数来获取历史股票数据。现我们需要获取吉电股份的历史数据,查询吉电股份的代码为000875
data = ts.get_hist_data('000875')
data.tail(3)

DataReader包

  1. 安装datareader库
# !pip install pandas_datareader -i https://mirrors.cloud.tencent.com/pypi/simple/  # 从指定镜像下载安装工具包,镜像URL可自行修改
  1. 导入datareader库
import pandas_datareader.data as web
import datetime
  1. 获取股票数据
# stock = web.DataReader(股票代码,股票网站,开始时间,结束时间)
web.DataReader('005380', 'naver', start='2023-01-01', end='2023-01-04')

为数据增加列:
计算DataFrame数据中增加涨/跌序列,其中涨/跌=(当日Close-上一日Close)/上一日Close,主要步骤如下:
1、添加一列“change”,该列存储当日股票价格与前一日收盘价格的涨跌数值,即当日Close价格-上一日Close价格;
2、填充缺失值,缺失值用涨跌数值的均值代替;
3、计算涨跌幅度。pct_change()方法是从第二项开始向前做减法后再除以第一项。

# DF数据中涨/跌序列,涨/=(当日Close-上一日Close)/上一日Close
# 添加一列change,该列存储当日股票价格与前一日收盘价格的涨跌数值,即当日Close价格-上一日Close价格
change = stock.Close.diff()
stock['Change'] = change
stock.head()
# 缺失的数值用涨跌值的均值代替
stock['Change'].fillna(change.mean(),inplace=True)
stock.head()
# 计算涨跌幅度:pct_change()。从第二项开始向前做减法后再除以第一项,计算即可得到涨跌幅序列
# 下面两代码思想和运行的结果一致
# stock['pct_change'] = (stock['Change'] / stock['Close'].shift(1))
stock['pct_change'] = stock.Close.pct_change()
stock.head()

数据可视化:

# 导入绘图包
import matplotlib.pyplot as plt
# 设置图片标题
plt.title(
    "{} 至{}的DJI的Close数据图".format(
        start.strftime('%Y-%m-%d'),
        end.strftime('%Y-%m-%d')))
# 对收盘价close列进行绘制,设置大小并有图例
stock['Close'].plot(legend=True, figsize=(10, 4))
plt.show()

在这里插入图片描述
数据分组:

grouped = stock_data.groupby('ts_code')

聚合分析:
常见的聚合函数:
在这里插入图片描述

# 按列“ts_code”分组,使用mean()函数计算分组中收盘价列“close”的平均值
grouped['close'].mean()
# 按列“ts_code”列分组,用max()和min()函数计算分组中收盘价列“close”的最大值、最小值
print(grouped['close'].max())
print(grouped['close'].min())
# 对多个列开盘价和收盘价应用agg聚合函数统计不同股票的均值、最大值和最小值
aggregated = grouped['open', 'close'].agg(['mean', 'max', 'min'])
# 对收盘价统计均值、对成交量统计和,对涨跌幅统计范围
# 定义聚合函数,计算最大值和最小值之间的差值


def spread(series):
    return series.max() - series.min()


aggregator = {'close': 'mean', 'vol': 'sum', 'pct_chg': spread}
aggregated = grouped.agg(aggregator)
# 筛选分组中指定列vol列最大值的行数据
# 定义top函数,选取每列最大值


def top(df, column='vol'):
    return df.sort_values(by=column, ascending=True)[-1:]


# 进行分组。
# as_index=False代表不将分组键作为索引;group_keys=False可以重新索引,而不采取分组键所形成的索引
stock_data_max = stock_data.groupby(
    'ts_code',
    as_index=False,
    group_keys=False).apply(top)

关键总结:

通过简单实例学习了数据分析的全流程,即数据读取、数据预览、数据清洗、数据保存,另外在学习过程中,也看到了数据可视化能够清晰的反映数据的变化情况,以及根据实际需要对数据进行分组、聚合分析等。
… …

问题/困惑:

对于分组与聚合操作在实际的应用中不熟练,需要多加练习。

下一步计划:

通过练习掌握数据的分组与聚合操作

参考资料/相关资源链接:

Pandas文档:https://pandas.pydata.org/docs/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/982212.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IMX6ULL移植篇-uboot源码目录表

一. uboot 源码分析前提 由于 uboot 会使用到一些经过编译才会生成的文件,因此,我们在分析 uboot的时候,需要先编译一下 uboot 源码工程。 这里所用的开发板是 nand-flash 版本。 本文学习续上一篇文章,如下: IMX6U…

电商物流解决方案公司Globavend申请纳斯达克IPO上市

来源:猛兽财经 作者:猛兽财经 猛兽财经获悉,电商物流解决方案公司Globavend近期已向美国证券交易委员会(SEC)提交招股书,申请在纳斯达克IPO上市,股票代码为(GVH)&#x…

chatglm2-6b在P40上做LORA微调 | 京东云技术团队

背景: 目前,大模型的技术应用已经遍地开花。最快的应用方式无非是利用自有垂直领域的数据进行模型微调。chatglm2-6b在国内开源的大模型上,效果比较突出。本文章分享的内容是用chatglm2-6b模型在集团EA的P40机器上进行垂直领域的LORA微调。 …

智慧铁路:机车整备场数字孪生

机车整备场是铁路运输系统中的重要组成部分,它承担着机车的维修、保养和整备工作,对保障铁路运输的运维和安全起着至关重要的作用。 随着铁路运输的发展、机车技术的不断进步,以及数字化转型的不断推进,数字孪生技术在机车整备场…

LeetCode刷题笔记【27】:贪心算法专题-5(无重叠区间、划分字母区间、合并区间)

文章目录 前置知识435. 无重叠区间题目描述参考<452. 用最少数量的箭引爆气球>, 间接求解直接求"重叠区间数量" 763.划分字母区间题目描述贪心 - 建立"最后一个当前字母"数组优化marker创建的过程 56. 合并区间题目描述解题思路代码① 如果有重合就合…

【业务功能篇99】微服务-springcloud-springboot-电商订单模块-生成订单服务-锁定库存

八、生成订单 一个是需要生成订单信息一个是需要生成订单项信息。具体的核心代码为 /*** 创建订单的方法* param vo* return*/private OrderCreateTO createOrder(OrderSubmitVO vo) {OrderCreateTO createTO new OrderCreateTO();// 创建订单OrderEntity orderEntity build…

echarts饼图label自定义样式

生成的options {"tooltip": {"trigger": "item","axisPointer": {"type": "shadow"},"backgroundColor": "rgba(9, 24, 48, 0.5)","borderColor": "rgba(255,255,255,0.4)&q…

Python Qt学习(十)一个简易的POP3邮件客户端

公司把126这类的邮箱网站都封了&#xff0c;正好现在无事&#xff0c;加之&#xff0c;算是一个对这俩周学习Qt的一个总结吧。遂写了这么一个简易的通过POP3协议接收126邮件的客户端。 源代码&#xff1a; # -*- coding: utf-8 -*-# Form implementation generated from read…

OpenCV图像处理——矩形(Rect)类的常用操作

1.Rect类 创建类 Rect类成员变量x、y、width、height&#xff0c;分别为左上角点的坐标和矩形的宽和高。 创建一个Rect对象Rect,并在图像上画该矩形框。 cv::Rect rect(100, 50, 500, 500);cv::Mat cv_src cv::imread("11.JPG");cv::rectangle(cv_src, rect, cv:…

每一座屎山代码背后,都藏着一堆熟读代码规范的研发

&#x1f449;导读 韩寒在《他的国》中写道&#xff1a;“我们懂很多道理&#xff0c;却依然过不好这一生”&#xff0c;人们虽然知道很多道理&#xff0c;但并不一定能将这些道理应用到实际生活中。这种现象在生活中很常见&#xff0c;我们听了很多的成功学的道理&#xff0c;…

接入 NVIDIA A100、吞吐量提高 10 倍!Milvus GPU 版本使用指南

Milvus 2.3 正式支持 NVIDIA A100&#xff01; 作为为数不多的支持 GPU 的向量数据库产品&#xff0c;Milvus 2.3 在吞吐量和低延迟方面都带来了显著的变化&#xff0c;尤其是与此前的 CPU 版本相比&#xff0c;不仅吞吐量提高了 10 倍&#xff0c;还能将延迟控制在极低的水准。…

ChatGLM2-6B 部署

引言 这是ChatGLM2-6B 部署的阅读笔记&#xff0c;主要介绍了ChatGLM2-6B模型的部署和一些原理的简单解释。 ChatGLM-6B 它是单卡开源的对话模型。 充分的中英双语预训练 较低的部署门槛 FP16半精度下&#xff0c;需要至少13G的显存进行推理&#xff0c;甚至可以进一步降低…

罕见病 对称性脂肪瘤(MSL) 马德龙病

如果你体内脂肪瘤分布大致如下 而且个数不断增多 这篇文章适合你 症状 脂肪瘤个数一直增加 而且很对称 比如: 左手臂一个 右手臂一个 别名 多发性对称性脂肪增多症 Multiple symmetric lipomatosis (MSL) 多发性对称性脂肪瘤&#xff08;MSL&#xff09; 脂肪瘤 马德龙病(…

大场景的倾斜摄影三维模型OBJ格式轻量化处理处理关键处理技术分析

大场景的倾斜摄影三维模型OBJ格式轻量化处理处理关键处理技术分析 大场景的倾斜摄影三维模型是指通过航空或地面摄影获取的大范围、高分辨率的地理环境数据。为了在虚拟环境中加载和渲染这些模型&#xff0c;需要对其进行OBJ格式的轻量化处理。本文将分析大场景的倾斜摄影三维模…

SSRF漏洞实战

文章目录 SSRF概述SSRF原理SSRF 危害PHP复现SSRF漏洞检测端口扫描内网Web应用指纹识别攻击内网应用读取本地文件 Weblogic SSRF--Getshell复现SSRF攻击Redis原理漏洞检测端口扫描复现翻车&#xff0c;请看官方复现教程注入HTTP头&#xff0c;利用Redis反弹shell SSRF防御过滤输…

软路由的负载均衡设置:优化网络性能和带宽利用率

在现代网络环境中&#xff0c;提升网络性能和最大化带宽利用率至关重要。通过合理配置软路由IP的负载均衡设置&#xff0c;可以有效地实现这一目标&#xff0c;并提高整体稳定性与效果。本文将详细介绍如何进行软路由IP的负载均衡设置&#xff0c;从而优化网络表现、增加带宽利…

软件架构设计(六) 软件架构风格-MDA(模型驱动架构)

概念 模型驱动架构MDA, 全称叫做Model Driven Architecture。 Model:表示客观事物的抽象表示Architecture:表示构成系统的部件,连接件及其约束的规约Model Driven: 使用模型完成软件的分析,设计,构建,部署和维护等 开发活动MDA起源于分离系统规约和平台实现的思想。之前…

Python入门学习13(面向对象)

一、类的定义和使用 类的使用语法&#xff1a; 创建类对象的语法&#xff1a; ​​​​​​​ class Student:name None #学生的名字age None #学生的年龄def say_hi(self):print(f"Hi大家好&#xff0c;我是{self.name}")stu Student() stu.name &q…

软件系统平台验收测试报告

验收测试 一、验收测试 软件项目验收测试依据招投标文件以及相关行业标准、国家标准、法律法规等对软件的功能性、易用性、可靠性、兼容性、维护性、可移植性和用户文档等进行检测&#xff0c;对软件项目的质量进行科学的评价&#xff0c;为项目验收提供依据。 1、服务内容 …

成功解决OSError: [WinError 1455] 页面文件太小,无法完成操作

最近写了个训练文件&#xff0c;昨天在运行的时候都是好好的&#xff0c;今天一运行就报错了&#xff0c;不得不说&#xff0c;有点点奇怪。 OSError: [WinError 1455] 页面文件太小&#xff0c;无法完成操作。 Error loading "D:\AI\Anaconda\anaconda3\envs\torch1.8\li…