Python + Power BI,高效完成股票分析!

当PowerBI遇到了Python 26黑夜终究过去,黎明终将到来PowerBI是目前最好的BI工具,也是最好的BI解决方案,更是最好的BI软件生态,但这不是说它已经很完美了,而是相对于竞品而言,事实上PowerBI还有很多需要改进的地方。Python是目前最好的数据科学语言,虽然有前辈R,也是后来的Julia,但挡不住Python社区的强大,有太多功能强大的库,短短的代码就可实现了其他语言需要写很长很长的功能。那么,PowerBI如果遇到Python会擦出怎样的火花呢?数据处理虽然PowerBI有Power Query加持可以做轻量的ETL 阅读详情

你好,我是坚持分享干货的 EarlGrey,翻译出版过《Python编程无师自通》、《Python并行计算手册》等技术书籍。

如果我的分享对你有帮助,请关注我,一起向上进击。

利用 Python 和 Power BI 分析股票投资组合,结合 Python 的强大数据处理能力和 Power BI 的强大可视化功能,为股票投资提供全面的见解。

首先,我们需要导入一些必要的库,如 os、pandas 和 yfinance。这些库分别用于文件操作、数据处理和获取财务数据。接着,我们从股票数据接口提供的 CSV 文件中读取交易数据,并将其合并成一个便于分析的 DataFrame。

为了确保分析的准确性,数据清理是必不可少的。我们删除了多余的列,转换了数据类型,并标准化了股票代码以符合金融数据库的格式。这个步骤确保了我们的数据一致性并为后续处理做好了准备。

# Remove columns that are not useful for the analysis
carteira = carteira.drop(["Conta", "Preço"], axis=1)


# Converting columns to numeric type
carteira['Financeiro Compra'] = pd.to_numeric(carteira['Financeiro Compra'].str.replace('.', '').str.replace(',', '.'))
carteira['Financeiro Venda'] = pd.to_numeric(carteira['Financeiro Venda'].str.replace('.', '').str.replace(',', '.'))


# Convert the 'Dt. Negociação' column to datetime format
carteira['Dt. Negociação'] = pd.to_datetime(carteira['Dt. Negociação'], format='%d/%m/%Y')




display(carteira)

ecfb3f8646f72e0d33bca8a520275c66.png

为了减少冗余并准备数据进行分析,我们按日期和库存汇总交易记录,然后计算采购和销售的累计总数。此步骤简化了数据,使其更易于分析和解释。

我们通过将股票数量乘以从雅虎财经获取的各自当前价格来计算投资组合的价值。这使我们能够跟踪投资的每日价值,并了解我们的投资组合在一段时间内的表现。

为了评估我们的投资组合相对于市场的表现,我们将投资组合价值标准化,并将其与IBOVESPA指数的表现进行比较。该基准清楚地表明了我们的投资相对于大盘的表现。

#A quick analysis between Ibovespa and the portfolio + dividends


total_norm['Lucro_div_norm'].plot(label='Carteira', figsize=(15,5))
df_ibov['ibov norm'].plot(label='IBOV')
plt.legend()
plt.show()


print(f"O ibov subiu {(df_ibov['ibov norm'][-1] - 1):.2%}")
print(f"A carteira com dividendos subiu {(total_norm[r'Lucro_div_norm'][-1] - 1):.2%}")

cb9f73247fe2e166a3175ed40cb374eb.png

股息是投资回报的重要组成部分。我们创建函数来获取、计算和显示投资组合中每只股票收到的股息。此步骤有助于了解总投资回报,包括资本收益和股息收入。

# Function to calculate and display dividends for a given stock
def Dividendos(ativo):
    div = get_dividends(ativo, start_date=data_inicial)
    div['quantidade'] = 0
    div['total'] = 0
    valortotal = 0
    for indice, linha in div.iterrows():
        valor = div.at[indice, 'dividend'] * df_carteira.at[indice,ativo]
        div.at[indice,'quantidade'] = df_carteira.at[indice,ativo]
        div.at[indice,'total'] = valor
        valortotal += valor


    display(div.loc[div['total'] > 0])
    print(f'Você recebeu no total R${valortotal:.2f} de dividendos')




# Function to analyze a specific stock in the portfolio
def AnalizarAtivo():
    ativo = str(input('Escolha um Ativo:'))
    if ativo in carteira_por_acao['Ativo'].values:
        quant = carteira_por_acao.loc[carteira_por_acao['Ativo']==ativo,'Quantidade'].values[0]
        preço_medio = carteira_por_acao.loc[carteira_por_acao['Ativo']==ativo,'Preço'].values[0]
        preço_atual = tabela_cotacoes.loc[data_final,ativo]
        porce_carteira = (df_carteira_valor_atual.loc[data_final,ativo] * 100) / df_carteira_valor_atual.loc[data_final,'Total atual']
        print(f'Você possui {quant} ações')
        print(f'O seu preço médio é de R${preço_medio:.2f}')
        print(f'Valor da ação no dia {data_final} é de R${preço_atual:.2f}')
        print(f'Lucro/prejuizo de {((preço_atual/preço_medio) -1):.2%}')
        print(f"Porcentagem na carteira é de {porce_carteira:.2f}%")
        tabela_cotacoes[ativo].plot(label=ativo, figsize=(15,5))
        plt.legend()
        plt.show()
        Dividendos(ativo)
    else:
        print('Você não possui esse ativo na carteira')

210a9702498f0fd7b829121871a54b16.png

选择股票后,结果是:

c6c0cca5bfa297a46aeedc656f9805f7.png

最后,我们将清理和处理的数据导出为 CSV 文件,以便轻松导入 Power BI 以进行进一步的可视化和报告。这允许通过交互式仪表板和报告增强对投资组合绩效的跟踪和分析。

916ceff1fb32657f208deaba920c33be.png

下面是使用导出的数据创建的 Power BI 仪表板的一些屏幕截图:在这里,可以看到每种资产在您的投资组合中的分布情况及其报价。

bac07460852cda5c1a15c99fe68338f5.png

在这里,可以看到每只股票收到了多少股息。

a5c4a7bf85f8e6e5738d8dff941ef1ea.png

文章展示了 Python 的数据分析功能与 Power BI 的可视化工具相结合的强大功能,以获得对股票投资组合表现的宝贵见解。通过自动化数据处理和利用交互式仪表板,投资者可以更轻松地跟踪和分析他们的投资,从而做出更明智的决策。

- EOF -

文章已经看到这了,别忘了在右下角点个“赞”和“在看”鼓励哦~

推荐阅读  点击标题可跳转

1、Python 项目工程化最佳实践

2、Python 可以比 C 还要快!

3、streamlit,一个超强的 Python 库

4、豆瓣8.9分的C++经典之作,免费送!

5、Python 3.12 版本有什么变化?

最近我开了一家淘宝店,名字叫【打破壁垒】,主打程序开发相关付费素材、工具的共享类商品,帮助大家降低试错和使用成本。欢迎大家关注。

0ceaa223849d71d140b94db22c01da3a.jpeg

长按扫描下方二维码,然后点击页面中的【打开淘宝】,即可进入店铺:

95ca2cf7f6a377d14b35b2617f1f9be7.png

回复下方「关键词」,获取优质资源

回复关键词「 pybook03」,领取进击的Grey与小伙伴一起翻译的《Think Python 2e》电子版

回复关键词「书单02」,领取进击的Grey整理的 10 本 Python 入门书的电子版

👇关注我的公众号👇

告诉你更多细节干货

505abe213743817409fd53086051928a.jpeg

欢迎围观我的朋友圈

👆每天更新所想所悟

Power BI中怎样使用Python 一、下载python,并在Power BI中设置 Power BI中配置Python运行环境,及正确设置环境变量的方法,见链接:https://hgdata.blog.youkuaiyun.com/article/details/104877044 二、运用python作图 1、点击Power BI 右边可“Python visual”,将需要作图的数据勾选上,这里是字段:x、y 此时下面会出现编辑框:提示将x,y赋值给了dataset,后续将用dataset 进行操作 2、输入以下代码,点击运.. 阅读详情

相关推荐

如何在Power BI中使用Python导入数据

Python可以说是业界最流行、最普遍的编程语言之一。一方面,Python可用于网络和应用程序开发,另一方面,它在数据世界中也非常流行,特别是在数据科学和数据工程方面。python的普遍性导致它被许多市场领先的工具、软件、框架和SDK采用。例如,在微软的技术栈中,像微软的Visual Studio、微软的Power BI、微软的SQL Server和其他这些流行的工具和技术都对Python有非常强大的集成支持。

weixin_73136678的博客 2081

python数据分析及可视化(十八)Power BI(数据获取、整理、清洗以及可视化、Power Query的基本操作、删除及增加列)

Power BI 对数据的获取、整理、清洗以及可视化、Power Query的基本操作、删除及增加列

hwwaizs的博客 1万+

2023年A股上市公司区域可视化(PowerBI )

股票数据整理得好的软件当然是同花顺,通过同花顺的i问财就可以免费下载到想要的数据,数据格式是xlsx。矩阵图:简单明了的展示了各省上司公司省数量信息,并做了排名处理,最后两列展示的是过去两年上市的公司数,这个数量能说明该省经济潜力巨大,未来经济有望腾飞。只是为了方便数据指标的搭建,删除了几列不需要的数据,重新计算了总市值列,拆分了上市日期列,增加城市的经纬字段。省公司数排名 = RANKX(ALLSELECTED(Sheet1[省份]),[上市公司(总数)],'度量表'[上市公司(总数)],DESC)

nzzgwh的博客 1472

数据分析学习指南:Excel、SQL、Python、Power BI 核心工具链实战路径

数据分析作为一项核心的数字化技能,其本质是通过科学方法从数据中提取信息、形成结论,以支持业务决策。其技术原理通常遵循从数据获取、清洗处理、分析建模到可视化呈现的完整流程。掌握这一流程对于提升个人与组织的决策效率和数据驱动能力具有重要价值,广泛应用于商业智能、运营优化、市场研究等场景。本文聚焦于构建扎实的数据分析能力,系统拆解了由 Excel、MySQL、Python 和 Power BI 组成的核心工具链。其中,Excel 用于快速数据感知与轻量分析,MySQL 负责高效的数据查询与整合,Python 赋能

weixin_30735745的博客 397

数据分析实战:Excel、SQL、Python、Power BI全流程电商项目解析

很多同学想入门数据分析,但面对 Excel、Python、SQL、BI 这些工具,常常感到无从下手,不知道从哪学起,也不知道学完后能做什么。网上资料虽然多,但往往零散不成体系,学完基础语法却做不出一个完整的分析项目。 本文为你整合了一套从零到一的数据分析实战学习路径,覆盖 Excel、Python、SQL、Power BI 四大核心工具。我们不只讲语法,更通过一个完整的“电商用户行为分析”项目,串联所有知识点,让你亲手完成数据获取、清洗、分析、可视化的全流程。无论你是学生、转行者,还是想提升技能的职场人,都

weixin_33744141的博客 385

Power BI嵌入Python实战:构建稳定高效的数据预处理流水线

Power BI嵌入Python并非炫技,而是解决真实ETL瓶颈的关键技术。其核心原理在于进程间通信调用外部Python解释器,通过pandas、scikit-learn等库实现超越Power Query的灵活数据清洗与特征工程。该方案具备显著技术价值:将复杂JSON解析、多源异构表格归一、正则文本提取等任务从数小时压缩至分钟级,大幅提升分析师生产力。典型应用场景包括销售数据标准化、电商API结构化解析、客户分群建模等业务关键链路。本文聚焦生产环境落地难点,覆盖环境配置兼容性、绝对路径管理、Power Qu

chuange6363的博客 621

7周零基础数据分析实战:Excel到Python全流程学习路径

数据分析作为从原始数据中提取有价值信息的技术过程,其核心原理在于通过系统化的数据处理、统计分析和可视化技术揭示数据背后的规律。在数字化转型背景下,数据分析能力已成为企业决策和业务优化的关键技术支撑,广泛应用于电商运营、金融风控、用户行为分析等场景。通过掌握Excel数据清洗、SQL查询、Python编程和Power BI可视化等工具组合,学习者能够建立端到端的数据分析能力体系。本实战导向的学习路径整合免费资源,以项目驱动的方式帮助零基础开发者在7周内系统掌握数据分析全流程,特别适合转行人员和技术爱好者快速入

weixin_34357928的博客 420

7周掌握数据分析全流程:Excel、SQL、Python、Power BI与数据思维

数据分析作为数据处理与业务决策的核心技术,其原理在于通过系统化方法从原始数据中提取有价值的信息。在技术层面,Excel提供了基础数据处理能力,SQL实现大规模数据查询,Python支持自动化分析与机器学习,而Power BI则专注于商业智能可视化。这些工具共同构建了从数据采集、清洗、分析到呈现的完整技术栈,其价值在于提升决策效率、优化业务流程并驱动业务增长。在应用场景上,数据分析广泛应用于电商、金融、零售等行业,支持用户行为分析、销售预测、运营优化等实际需求。本教程围绕Excel数据清洗、SQL高级查询等热

weixin_30333885的博客 402

abupy 交互式量化界面操作指南:历史回测、量化分析工具与股票信息查询全解析

本篇指南以阿布量化系统(abupy)自带的 `abupy_ui` 图形化界面模块为核心,系统讲解其四大交互式组件——历史回测、量化分析工具、数据下载、策略参数验证——的界面结构与操作步骤,并对照 [WidgetBu](https://link.gitcode.com/i/322d5fdd0ca9eb648c3c33730395ac53) 源码逐一还原每个按钮、每个参数背后的真实实现。读完本文,你将

gitblog_01190的博客 459

【Python Power BI】零基础也能轻松掌握的学习路线与参考资料

文章介绍如何使用Python和Power BI进行时间序列分析和预测:https://powerbi.microsoft.com/zh-cn/blog/time-series-forecasting-with-python-and-power-bi/文章介绍如何使用Python和Power BI抽取和分析文本数据:https://powerbi.microsoft.com/zh-cn/blog/text-analysis-in-power-bi-using-python/

weixin_50409347的博客 1315

Unity跨平台存储避坑指南:persistentDataPath权限真相

Application.persistentDataPath是Unity中用于持久化数据的核心路径,表面提供跨平台抽象,实则底层访问机制因操作系统而异。其原理并非简单路径映射,而是受Android Scoped Storage、iOS Data Protection、Windows组策略及macOS隐私权限等多层安全模型动态约束。技术价值在于保障用户数据长期可靠存储,但若忽略平台差异,极易引发‘本地正常、真机崩溃’‘iOS可存、Android报错’等线上事故。典型应用场景包括游戏存档、离线缓存、自定义资源包

weixin_32073537的博客 351

软件散点图管理化的相关性分析

而散点图作为直观展示数据分布与相关性的工具,通过软件管理化实现高效分析与可视化,已成为科研、商业和工程领域的标配。本文将围绕软件散点图管理化的相关性分析展开,从多个角度探讨其核心价值与应用场景。多维数据还可通过颜色、大小区分变量,直观呈现复杂关系,如电商分析用户年龄与消费金额的关联性。从金融风险评估(股票收益与波动率分析)到医疗研究(药物剂量与疗效关系),散点图管理化工具已渗透各领域。随着AI技术的融合,未来其自动化与预测能力将进一步释放数据价值,成为决策者的核心助手。**数据预处理与清洗**

vyjgux_923的博客 175

STM32G0——USB虚拟串口

STM32G0用cubeMX配置实现USB虚拟串口

阿昌 2321

PowerBI平滑曲线有什么实现方法

在数据可视化领域,平滑曲线不仅能够提升图表的美观度,还能帮助我们更好地理解数据的趋势和模式。尤其是在商业智能工具如Power BI中,平滑曲线的应用可以极大地增强数据故事的叙述力。然而,对于初学者来说,如何在Power BI中实现平滑曲线可能是一个挑战。本文将详细介绍几种在Power BI中实现平滑曲线的方法,并探讨其背后的原理和技术细节,帮助你掌握这一技能,让你的数据可视化更加专业和高效。

yjq125931902的博客 1099

OpenCL编译环境配置

在 Linux 系统上配置 OpenCL 开发环境需要安装适当的驱动、运行时和开发工具。

深之JohnChen的专栏 2003

Electron vue3 - 使用SerialPort与串口交互教程,计算机串行端口(COM口、USB转串口等)进行通信连接读取或写入Arduino、单片机、PLC、扫码枪、打印机、老式调制解调器!

实战Electron使用SerialPort与串口交互详细全过程,Electron-vue3与串口交互示例,Electron vue使用serialport实现串口交互通讯,Electron-vue使用serialport连接本地串口,electron-vue 台称串口对接 SerialPort,electron串口调试工具,electron+vue+serialport实现串口通信,串口通信serialport使用和调试,electron-vue使用serialport串口通信及踩过的坑(已解决!)ele

🏆 前端领域优质创作者 4641

零基础Python数据分析自学指南:从环境搭建到实战项目

数据分析作为从海量信息中提取价值的关键技术,其核心在于通过系统性的方法处理、探索和解释数据。其基本原理涉及数据采集、清洗、转换和建模,最终服务于决策支持。在技术实现上,Python凭借其丰富的库生态成为主流工具,其中Pandas和NumPy提供了高效的数据结构与计算能力,Matplotlib和Seaborn则负责结果的可视化呈现。掌握这些工具不仅能提升个人数据处理效率,更在业务分析、市场研究和自动化报告等场景中具有广泛应用价值。对于初学者而言,一套结构清晰的教程至关重要,它能系统性地引导学习者从环境配置、核

weixin_33922670的博客 487

【VTKExamples::PolyData】第十六期 GradientFilter

本文分享VTK样例GradientFilter,并解析接口vtkGradientFilter & vtkAssignAttribute,希望对各位小伙伴有所帮助!

qq_40041064的博客 319

10小时掌握数据分析全流程:从Python环境搭建到实战项目

数据分析作为从海量信息中提取价值、驱动决策的核心技术,其原理在于通过系统性的方法将原始数据转化为洞察。其技术价值在于能够自动化处理流程、揭示隐藏模式并支持预测,广泛应用于商业智能、运营优化和科学研究等领域。本文聚焦于**实战项目**与**数据分析全流程**,通过一个完整的端到端案例,演示如何利用Python生态中的Pandas、Matplotlib和Scikit-learn等工具,快速构建从数据获取、清洗、可视化到初步建模的完整技能链,帮助初学者在短时间内建立可落地的工程实践能力。

weixin_30340617的博客 428

华为OD面试八股文嵌入式C语言基础问题及答案(一)

本文总结了C语言编程中的10个关键知识点:1.宏定义MIN的实现方法;2.嵌入式无限循环的两种写法;3.变量a的8种不同定义方式;4.static关键字的三种作用;5.const关键字的含义和使用场景;6.volatile关键字的含义及三个应用实例;7.变量存储位置(栈区、静态区、堆区);8.32位系统指针位数;9.局部与全局变量重名规则;10.引用与指针的三点区别。这些内容涵盖了宏定义、变量声明、存储类别、指针等C语言核心概念,对嵌入式开发和系统编程具有重要参考价值。

m0_50382756的博客 160

【RV1126/RV1109学习笔记】#基础篇#(2)基础入门使用

一、调试方式 1、串口调试 2、ADB调试 3、网络调试 二、基础外设使用 音频使用(aplay,arecord,amixer) 三、WIFI连接 四、屏幕背光控制

丨晋丨 1858
上一篇: Tabby,一个 5 万星标的终端工具
下一篇: 2024成人学历提升通道开启,低学历可报,名额有限
codingpy
博客等级 码龄11年 1870粉丝 104原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值