Python 学习记录(3)
数据
主要是对Pandas相关的数据帧等做处理和一定的可视化
Pandas对数据帧各列的运算
import seaborn as sns
import pandas as pd
#从Seaborn 当中导入鸢尾花数据帧,并处理
iris_df=sns.load_dataset("iris")
X_df=iris_df.copy()
X_df.rename(columns={'sepal_length':'X1',
'sepal_width':'X2'},
inplace=True)
X_df_=X_df[['X1','X2','species']]
#只选择三列
X_df_['X1-E(X1)']=X_df_['X1']-X_df_['X1'].mean()
#新添加一行,用于表示花萼中心化
X_df_['X2-E(X2)']=X_df_['X2']-X_df_['X2'].mean()
#花萼宽度取去均值
X_df_['X1*X2']=X_df_['X2']*X_df_['X2']
X_df_['X1/X2']=X_df_['X1']/X_df_['X2']
#相关相乘与相加
X_df_.drop(['X1','X2'],axis=1,inplace=True)
#删去原先的X1,X2,其中axis=1指明删去的是列,inplace=True说明实在原来的数据帧上操作。
#对相关情况可视化
sns.pairplot(X_df_,corner=True,hue="species")
对其可视化后的结果:

利用Pandas对利率数据的可视化
简单介绍:
- 先利用pandas_datareader从多种数据源中获得金融和经济数据。
- 之后利用python当中的可视化工具进行可视化。
- 最后对图像进行一定的美化。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import pandas_datareader as pdr
#如果没有pandas_datareader库/或出现报错
#先将pandas_datareader库下载,pip install pandas_datareader
import seaborn as sns
#----导入数据--start-----
df=pdr.data.DataReader(['DGS6MO','DGS1',
'DGS2','DGS5',
'DGS7','DGS10',
'DGS20','DGS30'],
data_source='fred',
start='01-01-2022',
end='12-31-2022')
df=df.dropna()
#修改数据帧列标签,dropna()方法删除数据帧中缺失值NaN.
df=df.rename(columns={'DGS6MO':'0.5 yr',
'DGS1':'1 yr',
'DGS2':'2 yr',
'DGS5':'5 yr',
'DGS7':'7 yr',
'DGS10':'10 yr',
'DGS20':'20 yr',
'DGS30':'30 yr'})
#对相应对象进行改名
#----end-----
#------简单画图-----
df.plot(xlabel='Time',ylabel='IR level',
legend=False,
xlim=(df.index.min(),df.index.max()))
plt.savefig("利率走势图.svg")
df.plot(subplots=True,layout=(2,4),
sharex=True,sharey=True,
xticks=[],yticks=[],
xlim=(df.index.min(),df.index.max()))
plt.savefig("利率走势图,子图.svg")
#savefig()方法将图片以 SVG 格式进行保存
#----美化线图----
#创建一个图像对象和一个轴对象
fig,ax=plt.subplots(figsize=(5,5))
#fig是一个图形对象,代表整个图形窗口
#ax是一个轴对象,代表图形窗口的子图或者坐标系
df.plot(ax=ax,xlabel="time",legend=True)
#这里ax=ax指定了具体对象
ax.set_xlim((df.index.min(),df.index.max()))
ax.set_ylim((0,5))
ax.set_xticks([])
ax.set_xlabel('time')
ax.set_ylabel('IR level')
结果:

时间序列数据帧索引与切片
简单介绍:
- 蒙特卡罗模拟:蒙特卡罗模拟是通过随机抽样的方法进行数值计算的一种技术.
- 广泛用于金融,物理,工程等领域,解决复杂的概率,统计和优化问题
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
date_range=pd.date_range(start='2023-01-01',
periods=365*2,freq='D')
#创建日期范围,使用date_range()方法
df=pd.DataFrame(index=date_range)
#创建一个空的DataFrame,用于存储随机行走数据,同时将行标签设置成天
num_path=50
np.random.seed(0)
#50个随机数,同时设置随机种子保证结果可重复
for i in range(num_path):
#满足正态分布随机数
step_idx=np.random.normal(loc=0.0,scale=1.0,
size=len(date_range)-1)
#其中有【(365*2)-2】个数据,因将0作为最开始数据
step_idx=np.append(0,step_idx)
walk_idx=step_idx.cumsum()
#将每天走的情况记录且累加放在相应的列下面,其中列下面放的是一堆
#数据非单值,因cumsum()方法计算累加,代表行走随时间变化
df[f'walk_{i+1}']=walk_idx
#------画出三幅图-----
df.plot(legend=False)
plt.grid(True)
plt.ylim(-80,80)
df[['walk_1','walk_2']].plot(legend=True)
plt.grid(True)
plt.ylim(-80,80)
df.loc['2023-01-01':'2023-08-08',
['walk_1','walk_2']].plot(legend=True)
plt.grid(True)
plt.ylim(-80,80)
代码输出情况:

Python 学习记录(3)的更多相关文章
- Python学习记录day6
title: Python学习记录day6 tags: python author: Chinge Yang date: 2016-12-03 --- Python学习记录day6 @(学习)[pyt ...
- Python学习记录day5
title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 --- 1.多层装饰器 多层装饰器的原理是,装饰器装饰函 ...
- Python学习记录day8
目录 Python学习记录day8 1. 静态方法 2. 类方法 3. 属性方法 4. 类的特殊成员方法 4.1 __doc__表示类的描述信息 4.2 __module__ 和 __class__ ...
- Python学习记录day7
目录 Python学习记录day7 1. 面向过程 VS 面向对象 编程范式 2. 面向对象特性 3. 类的定义.构造函数和公有属性 4. 类的析构函数 5. 类的继承 6. 经典类vs新式类 7. ...
- Python学习记录:括号配对检测问题
Python学习记录:括号配对检测问题 一.问题描述 在练习Python程序题的时候,我遇到了括号配对检测问题. 问题描述:提示用户输入一行字符串,其中可能包括小括号 (),请检查小括号是否配对正确, ...
- 实验楼Python学习记录_挑战字符串操作
自我学习记录 Python3 挑战实验 -- 字符串操作 目标 在/home/shiyanlou/Code创建一个 名为 FindDigits.py 的Python 脚本,请读取一串字符串并且把其中所 ...
- 我的Python学习记录
Python日期时间处理:time模块.datetime模块 Python提供了两个标准日期时间处理模块:--time.datetime模块. 那么,这两个模块的功能有什么相同和共同之处呢? 一般来说 ...
- Python 学习记录
记录一些 学习python 的过程 -------------------------------------- 1. 初始学习 @2013年10月6日 今天开始学习python 了 遇到好多困难但是 ...
- python学习记录_IPython基础,Tab自动完成,内省,%run命令_
这是我第一次写博客,之前也有很多想法,想把自己所接触的,以文本的形式储存,总是没有及时行动.此次下定决心,想把自己所学,所遇到的问题做个记录共享给诸位,与此同时自己作为备忘,感谢各位访问我的博 ...
- Python学习记录----数据定义
摘要: 描述Python中数据定义格式,需要注意的东东. 一 数据声明 Python木有一般语言的具体数据类型,像char,int,string这些通通木有.这有点像javascript,但又不同,j ...
随机推荐
- 支付宝携手HarmonyOS SDK打造高效便捷的扫码支付体验
背景 在日常的购物转账.生活缴费等在线支付中,用户在正式拉起支付界面前,均需要至少经历一次"识别"+两次"寻找",即识别归属应用.寻找应用.寻找扫码入口,才能完 ...
- QT原理与源码分析之QT对象类型QObject源码中的间接的设计思想
这一篇文章介绍QT框架中QT对象类型QObject类型的源代码在设计上的一个比较优秀的设计思想. QObject类型定义 QObject 直接来看QObject的源代码.为了表达更简洁更直观,这里省略 ...
- CTFSHOW pwn03 WrriteUp
本文来自一个初学CTF的小白,如有任何问题请大佬们指教! 题目来源 CTFShow pwn - pwn03 (ret2libc) https://ctf.show/challenges 思路 1.下载 ...
- Autodesk Maya无法打开 refrence file 解决办法
删除预设 预设的位置在: 我的文档/maya/version/ prefs 备注: 我的文档/maya/version/ 无法确定是不是该路径下的所有文件夹都能删除,所以只剪切了 prefs 文件夹出 ...
- Vue 调用后台接口导出Excel
vue 调用后台接口生成 Excel 咱也不会前端,就是现学现卖. Js export function exportOnlyB(reportId) { return request({ url: & ...
- SXYZ-6.28训练赛
今天上午出中考成绩,所以下午打了一场训练赛,只有两个小时,没有昨天毒瘤,但也很毒瘤(还是模拟赛好) 关于中考可以看我的中考游记 (为了保护隐私,以后都把姓名涂掉) 为什么还是倒数啊~ T1 binar ...
- Flutter TextField 的高度问题
示例 先来看一个例子:假设我们要做一个表单,左边是提示文字,右边是输入框 给出代码: Row( crossAxisAlignment: CrossAxisAlignment.center, child ...
- js 中必须加分号的位置集合
1. 匿名函数(自执行函数)(function (){}()) 2. 解析赋值 2 个变量交换位置
- 怎么根据token的有⽆去控制路由的跳转?进度条跳转 - 白名单是否有token - 单独封装文件permission .js
vue这边的路由⾃带了路由前置守卫,我们可以在前置守卫⾥拿到token数据,然后根据需求做分⽀判 断,要是token存在就使⽤next⽅法正常放⾏跳转,否则可以强制跳回到登录,让⽤户去获取token ...
- python 打包 py 文件 为exe
使用 pyinstaller 来进行打包 pip install pyinstaller 可能需要全局 科学 代理上网 或者 修改 下载源地址 执行命令 图标path:C:\desktop\icon ...