首页 > 其他分享 >指数整合优化

指数整合优化

时间:2024-12-21 09:13:24浏览次数:4  
标签:index 指数 df ak 整合 date 优化 symbol stock

import akshare as ak
import pandas as pd

start_date='2024-12-01'
end_date='2024-12-20'

# 获取000300的历史行情数据
df_000300 = ak.index_zh_a_hist(symbol="000300")
# 获取sh000852的历史行情数据
df_sh000852 = ak.stock_zh_index_daily(symbol="sh000852")
# 获取HSI的历史行情数据
df_HSI= ak.stock_hk_index_daily_sina(symbol="HSI")
# 获取IXIC的历史行情数据
df_IXIC = ak.index_us_stock_sina(symbol=".IXIC")
df_Au = ak.spot_hist_sge(symbol='Au99.99')
df_300etf = ak.stock_zh_index_daily_em(symbol="sh510300")
df_1000etf = ak.stock_zh_index_daily_em(symbol="sh512100")
df_hz = ak.stock_zh_index_daily_em(symbol="sh513600")
# 获取黄金指数的历史行情数据
df_goldetf = ak.stock_zh_index_daily_em(symbol="sz159834")
# 获取国债指数的历史行情数据
df_bondetf = ak.stock_zh_index_daily_em(symbol="sh511100")
# 获取纳指指数的历史行情数据
df_nzetf = ak.stock_zh_index_daily_em(symbol="sz159509")
# 将日期列转换为日期时间类型

# 假设所有的数据框都放在这个列表中,你可以根据实际情况调整列表内容
dataframes = [df_000300, df_sh000852, df_HSI, df_IXIC, df_Au, df_300etf, df_1000etf, df_hz, df_goldetf, df_bondetf, df_nzetf]

# 遍历列表中的每个数据框,将名为'date'或'日期'的列转换为日期时间类型
for df in dataframes:
    date_column_name = 'date' if 'date' in df.columns else '日期'
    df[date_column_name] = pd.to_datetime(df[date_column_name])
date_column_names = ['date' if 'date' in df.columns else '日期' for df in dataframes]

for df, date_column in zip(dataframes, date_column_names):
    df = df[(df[date_column] >= start_date) & (df[date_column] <= end_date)]
# 选取需要的列并进行重命名
df_000300 = df_000300[['日期', '收盘', '最高', '最低', '成交量']].rename(columns={
    '日期': 'date',
    '收盘': '000300_close',
    '最高': '000300_high',
    '最低': '000300_low',
    '成交量': '000300_volume'
})

df_sh000852 = df_sh000852[['date', 'close', 'high', 'low', 'volume']].rename(columns={
    'close': 'sh000852_close',
    'high': 'sh000852_high',
    'low': 'sh000852_low',
    'volume': 'sh000852_volume'
})

df_HSI = df_HSI[['date', 'close', 'high', 'low', 'volume']].rename(columns={
    'close': 'HSI_close',
    'high': 'HSI_high',
    'low': 'HSI_low',
    'volume': 'HSI_volume'
}) 

df_IXIC = df_IXIC[['date', 'close', 'high', 'low', 'volume']].rename(columns={
    'close': 'IXIC_close',
    'high': 'IXIC_high',
    'low': 'IXIC_low',
    'volume': 'IXIC_volume'
}) 

df_Au = df_Au[['date', 'close', 'high', 'low']].rename(columns={
    'close': 'Au_close',
    'high': 'Au_high',
    'low': 'Au_low'
}) 

df_300etf = df_300etf[['date','close']].rename(columns={
    'close': '300etf_close'})

df_1000etf = df_1000etf[['date','close']].rename(columns={
    'close': '1000etf_close'})

df_hz = df_hz[['date','close']].rename(columns={
    'close': 'hz_close'})
df_goldetf = df_goldetf[['date','close']].rename(columns={
    'close': 'goldetf_close'})
df_bondetf = df_bondetf[['date','close']].rename(columns={
    'close': 'bondetf_close'})
df_nzetf = df_nzetf[['date','close']].rename(columns={
    'close': 'nzetf_close'})

# Merge the two DataFrames on the 'date' column
for n,i in enumerate([df_000300, df_sh000852, df_HSI,df_IXIC,df_Au,df_300etf,df_1000etf,df_hz,df_goldetf,df_bondetf,df_nzetf]):
    if n == 0:
        result = i
    else:
        result = pd.merge(result, i, on='date', how='inner')

# Display the merged DataFrame
result

  

 

标签:index,指数,df,ak,整合,date,优化,symbol,stock
From: https://www.cnblogs.com/leon507/p/18620262

相关文章

  • React性能优化实战:从理论到落地的最佳实践
    "这个列表页怎么这么卡?"产品经理皱着眉头看着我。作为一个接手海外电商项目的前端开发者,我深知性能问题的重要性。特别是在东南亚市场,很多用户使用的是中低端手机,网络条件也不太理想。最近一个月,我带领团队对整个React应用进行了一次全面的性能优化,不仅解决了性能问题,还总......
  • PowerShell 脚本的作用是通过调用 NGEN (Native Image Generator) 工具来优化 .NET 程
    $Env:PATH=[Runtime.InteropServices.RuntimeEnvironment]::GetRuntimeDirectory()[AppDomain]::CurrentDomain.GetAssemblies()|%{ $pt=$_.Location if(!$pt){continue} if($cn++){''} $na=Split-Path-Leaf$pt Write-Host-ForegroundColorY......
  • 【机器学习】股票价格预测:基于LSTM模型的完整实现与优化(附可运行代码及进阶操作)
    引言股票价格预测是一个复杂且具有挑战性的任务,传统的预测方法往往难以捕捉股票价格中的复杂关系。LSTM(长短期记忆网络)作为一种特殊的递归神经网络,因其能够处理时间序列中的长依赖问题,成为股票价格预测的有力工具。本文将详细介绍一个基于LSTM模型的股票价格预测项目,并结合实......
  • 指数整合
    importakshareasakimportpandasaspd#获取000300的历史行情数据df_000300=ak.index_zh_a_hist(symbol="000300")#获取sh000852的历史行情数据df_sh000852=ak.stock_zh_index_daily(symbol="sh000852")#获取HSI的历史行情数据df_HSI=ak.stock_hk_index_dail......
  • 《 C++ 点滴漫谈: 十 》揭秘 C++ struct 的潜力:内存布局、继承、优化,你都掌握了吗?
    摘要本文全面解析了C++中的struct关键字,从其基本概念到高级应用,涵盖了struct的成员与访问控制、构造函数与析构函数、继承与多态,以及内存布局和现代C++的特性扩展。此外,文章详细探讨了struct与class的异同、与union的对比,并剖析了常见的误区与陷阱。结合丰富......
  • 使用 Assert 工具类优化业务逻辑判断
    使用Assert工具类优化业务逻辑判断在项目中,常常需要进行判空或业务逻辑判断,进而抛出异常处理。例如,检查用户是否登录、设备信息是否正确、用户是否有权限等。示例代码(未优化)java复制代码//查看是否登录LoginUserloginUser=getLoginUser();if(loginUser==null......
  • 关于 Sysprep、小鱼儿yr系统封装优化设置辅助工具、全自动系统封装工具 v5.5.3.6、系
    关于Sysprep、小鱼儿yr系统封装优化设置辅助工具、全自动系统封装工具v5.5.3.6、系统封装助手v2.0正式版、EasySysprep5Plus和系统封装首席执行官的对比分析表格,主要从功能、自动化程度、适用场景等角度进行比较。工具名称Sysprep小鱼儿yr系统封装优化设置辅助工具......
  • 日志过量优化
    背景有两个B端服务,因为不好的日志习惯,无效日志量过大,日志经常被自动覆盖,只能存几天,导致排查问题困难,针对此,做了下无效日志的清理优化,本身没什么技术含量,但是操作起来比较恶心。这个问题的关键是对于一个复杂的B端项目,每天百G的文件里量,如何找到无效日志。首先,查看日志文件......
  • 5分钟速览:优化项目管理必备的5款高效工具
    在当前的数字化时代,项目管理软件已成为企业不可或缺的工具,它们能够帮助企业优化资源配置、提高团队协作能力和响应速度。以下是对5款企业必备的项目管理软件的测评:板栗看板●简介:板栗看板是一款灵活高效的看板效率工具,适用于个人待办、知识笔记及团队任务协同等多种场景。其直......
  • 智源:LoRA参数共享优化LLM多任务学习
    ......