python - Python比较DataFrames
问题描述
我每 5 分钟从 Yfinance(雅虎财经)收集数据。对于 10 只股票,我正在收集股票价格并将带有价格的股票列表放入 pd 数据框中。我过滤掉当天变化超过 2% 的股票,并通过电子邮件发送给我。我想要做的不是每 5 分钟收到一封电子邮件,而是仅在数据框中的数据发生重大变化的情况下。所以我想知道如何能够存储数据帧并将其与 5 分钟后创建的新数据帧进行比较。有人可以在这里帮助我吗?
解决方案
您没有提供有关您的应用程序的太多信息,但您可能会使用以下内容:
import pandas as pd
change_treshold = 0.02
def does_differ(frame, frame2):
diff = abs((frame2 - frame) / frame)
res = diff > change_treshold
return res.any()
frame = pd.DataFrame([2000, 300, 10000])
frame2 = pd.DataFrame([2001, 300, 9999])
frame3 = pd.DataFrame([2000, 270, 10000])
print(does_differ(frame, frame2))
print(does_differ(frame, frame3))
推荐阅读
- cmd - 使用 cscript 时有没有办法在屏幕上删除多余的文字?
- php - 使用 cronJob 和 SQL 为记录创建 PHP 数据库,通过每晚将值向右移动来更新数据库
- ffmpeg - 为什么我的 linux ffmpeg 输出文件需要通过 ffmpeg 运行它才能在 Windows 上播放
- node.js - 数组中的一个对象,什么数据类型?
- python - QTreeView根据内容动态高度,显示三角形
- android - 在 Android 上,在创建新的大文件之前和期间,我怎么知道在没有存储空间的情况下会成功?
- devstack - 通过 devstack,计算节点未显示在操作系统界面中
- reactjs - 在没有浏览器刷新的情况下渲染时,useRef 为 null
- java - AWS Lambda:配置 logback 以记录到 tmp 文件夹
- stm32 - stm32 RTC 唤醒定时器中断 LL