爬虫接口获取外汇数据(汇率,外汇储备,贸易顺差,美国CPI,M2,国债利率)

本文主要是介绍爬虫接口获取外汇数据(汇率,外汇储备,贸易顺差,美国CPI,M2,国债利率),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

akshare是一个很好用的财经数据api接口,完全免费!!和Tushare不一样。

除了我标题显示的数据外,他还提供各种股票数据,债券数据,外汇,期货,宏观经济,基金,银行,货币等等。

基本上我找经济类数据都优先用这个,本次就展示一下怎么获取标题上的这几个数据。


代码获取

先导入包:

import numpy as np
import pandas as pd
import akshare as ak
import warnings
warnings.filterwarnings('ignore')

获取美团对人民币汇率:(这里原本是可以返回很多国家对人民币的汇率的,我只取出了美国,并且原数据是日度的,我重采样为了月度数据)

currency_boc_safe_df = ak.currency_boc_safe().iloc[:,:2]
currency_boc_safe_df=currency_boc_safe_df.set_index('日期')
currency_boc_safe_df.index=pd.to_datetime(currency_boc_safe_df.index)
currency_boc_safe_df.rename(columns={'美元':'汇率'},inplace=True)
currency_boc_safe_df=currency_boc_safe_df.resample('M').mean()
currency_boc_safe_df

 

没什么问题,现在人民币汇率大概是7点多。数据时间口径也是月度。


获取外汇储备

#外汇储备
macro_china_fx_reserves_yearly_df = ak.macro_china_fx_reserves_yearly().rename("外汇储备")
macro_china_fx_reserves_yearly_df

这个数据本来就是月度的,所以就不需要额外处理,2014年是半年一个,可能原因是那个时候公布数据可能只是半年一次吧。到2016年就正常了。


获取广义货币量M2:

#M2
macro_china_m2_yearly_df = ak.macro_china_m2_yearly().rename("M2")
macro_china_m2_yearly_df

 


美国CPI:
 

#美国CPI
macro_usa_cpi_monthly_se = ak.macro_usa_cpi_monthly().rename("美国CPI")
macro_usa_cpi_monthly_se


国债利率:
 

#国债利率
import datetime
start_date = datetime.date(2016, 1, 1)
end_date = datetime.date(2023, 12, 31)
all_data_formatted = pd.DataFrame()
current_date_formatted = start_date
while current_date_formatted <= end_date:year_end_date_formatted = min(datetime.date(current_date_formatted.year + 1, 1, 1) - datetime.timedelta(days=1), end_date)start_date_str = current_date_formatted.strftime('%Y%m%d')end_date_str = year_end_date_formatted.strftime('%Y%m%d')year_data_formatted = ak.bond_china_yield(start_date=start_date_str, end_date=end_date_str)all_data_formatted = pd.concat([all_data_formatted, year_data_formatted])current_date_formatted = year_end_date_formatted + datetime.timedelta(days=1)
all_data_formatted.head()

 国债这个接口每次只能返回一年的数据,所以需要获取很多次,然后还需要把自己需要的1年期的国债利率取出来。

bond_china_yield_df = all_data_formatted[['曲线名称', '日期', '1年']].query('曲线名称=="中债国债收益率曲线"')
bond_china_yield_df=bond_china_yield_df.drop(columns='曲线名称').set_index('日期').rename(columns={'1年':"国债利率"})
bond_china_yield_df.index=pd.to_datetime(bond_china_yield_df.index)
bond_china_yield_df=bond_china_yield_df.resample('M').mean()
bond_china_yield_df


 贸易顺差:

macro_china_trade_balance_df = ak.macro_china_trade_balance().rename("贸易顺差")
macro_china_trade_balance_df.tail()


是不是都很方便,几行代码有的甚至一行代码就能获取你去统计年鉴翻遍的数据。

最后把数据都进行合并;

merged_df = pd.concat([currency_boc_safe_df, macro_china_fx_reserves_yearly_df, macro_china_m2_yearly_df, macro_usa_cpi_monthly_se, bond_china_yield_df, macro_china_trade_balance_df], axis=1).loc['2016-01-01':,:].resample('M').mean()
merged_df.index = merged_df.index.to_period('M') 
merged_df

除了几个月的某些指标没有数据外,其他数据都是整整齐齐的,很不错。很方便,这样就可以进行自己的下一步研究了。

当然我这是选择了几个需要的指标,方便我下一篇进行建模分析。

akshare还有超级多的种类的经济数据,可以自己去查看官方文档怎么获取。

不会获取的同学需要我这里的数据可以参考我下一篇的文章里面的数据获取方式:


创作不易,看官觉得写得还不错的话点个关注和赞吧,本人会持续更新python数据分析领域的代码文章~

这篇关于爬虫接口获取外汇数据(汇率,外汇储备,贸易顺差,美国CPI,M2,国债利率)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/626142

相关文章

如何利用Java获取当天的开始和结束时间

《如何利用Java获取当天的开始和结束时间》:本文主要介绍如何使用Java8的LocalDate和LocalDateTime类获取指定日期的开始和结束时间,展示了如何通过这些类进行日期和时间的处... 目录前言1. Java日期时间API概述2. 获取当天的开始和结束时间代码解析运行结果3. 总结前言在J

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

MyBatis-Flex BaseMapper的接口基本用法小结

《MyBatis-FlexBaseMapper的接口基本用法小结》本文主要介绍了MyBatis-FlexBaseMapper的接口基本用法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具... 目录MyBATis-Flex简单介绍特性基础方法INSERT① insert② insertSelec

Spring排序机制之接口与注解的使用方法

《Spring排序机制之接口与注解的使用方法》本文介绍了Spring中多种排序机制,包括Ordered接口、PriorityOrdered接口、@Order注解和@Priority注解,提供了详细示例... 目录一、Spring 排序的需求场景二、Spring 中的排序机制1、Ordered 接口2、Pri

Idea实现接口的方法上无法添加@Override注解的解决方案

《Idea实现接口的方法上无法添加@Override注解的解决方案》文章介绍了在IDEA中实现接口方法时无法添加@Override注解的问题及其解决方法,主要步骤包括更改项目结构中的Languagel... 目录Idea实现接China编程口的方法上无法添加@javascriptOverride注解错误原因解决方

Redis的数据过期策略和数据淘汰策略

《Redis的数据过期策略和数据淘汰策略》本文主要介绍了Redis的数据过期策略和数据淘汰策略,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录一、数据过期策略1、惰性删除2、定期删除二、数据淘汰策略1、数据淘汰策略概念2、8种数据淘汰策略

轻松上手MYSQL之JSON函数实现高效数据查询与操作

《轻松上手MYSQL之JSON函数实现高效数据查询与操作》:本文主要介绍轻松上手MYSQL之JSON函数实现高效数据查询与操作的相关资料,MySQL提供了多个JSON函数,用于处理和查询JSON数... 目录一、jsON_EXTRACT 提取指定数据二、JSON_UNQUOTE 取消双引号三、JSON_KE

java获取图片的大小、宽度、高度方式

《java获取图片的大小、宽度、高度方式》文章介绍了如何将File对象转换为MultipartFile对象的过程,并分享了个人经验,希望能为读者提供参考... 目China编程录Java获取图片的大小、宽度、高度File对象(该对象里面是图片)MultipartFile对象(该对象里面是图片)总结java获取图片

Java通过反射获取方法参数名的方式小结

《Java通过反射获取方法参数名的方式小结》这篇文章主要为大家详细介绍了Java如何通过反射获取方法参数名的方式,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、前言2、解决方式方式2.1: 添加编译参数配置 -parameters方式2.2: 使用Spring的内部工具类 -

Java如何获取视频文件的视频时长

《Java如何获取视频文件的视频时长》文章介绍了如何使用Java获取视频文件的视频时长,包括导入maven依赖和代码案例,同时,也讨论了在运行过程中遇到的SLF4J加载问题,并给出了解决方案... 目录Java获取视频文件的视频时长1、导入maven依赖2、代码案例3、SLF4J: Failed to lo