python - 在熊猫数据框列中找到最大差异
问题描述
我在下面有一个熊猫数据框:
df
Ticker Price Volume Price2
0 A 147.779999 51918.0 147.779999
1 AAL 21.209999 229944.0 44.523753
2 AAP 205.139999 32928.0 61.324705
3 AAPL 136.919998 1175723.0 120.954594
4 ABBV 112.599998 135235.0 120.259632
...
我想通过 df 解析并找到 Price2 和 Price(Price2 减去 Price)之间差异最大的 Ticker。无论选择什么 Ticker,我都希望将行的值存储在一个变量中,以便我可以访问特定的列。
这可能吗?任何帮助将非常感激!
解决方案
是的你可以:
differential = df['Price2'] - df['Price']
ticker = df.loc[differential.idxmax(), 'Ticker']
但是看到你正在处理股票价格,绝对价格差异没有什么意义。10 美元的差异对 136 美元的股票(如苹果)比对 3400 美元的股票(如亚马逊)的意义更大,这是对 418,000 美元的股票(伯克希尔哈撒韦公司)的舍入误差。更好的衡量标准是使用差异百分比:
differential = df['Price2'] / df['Price'] - 1
ticker = df.loc[differential.idxmax(), 'Ticker']
推荐阅读
- php - PHP zip 文件在本地下载,但不在生产环境中
- firebase - 我在尝试对数据进行排序时遇到问题
- python - 我可以在不重写代码的情况下更改 Python 对象的 __call__ 吗?
- java - javascript 错误:a.tagName.toUpperCase 不是使用 Selenium 和 Java 单击按钮的函数错误
- c# - 在 Net Core 3.1 MVC 中使用 Ajax 请求触发 IActionResult
- sql - 根据具有多个条件的另一个表中的匹配列值过滤一个表中的行
- android - 如何使用 OSM Android 获取限速值
- liferay-7 - Liferay Service Builder - 是否有推荐的方法来描述 service.xml 中的自引用关系?
- docker - 如何使用 docker 桌面运行 docker-compose?
- netcdf - 是否有 NCO 命令可以更改 netcdf 中变量的时间戳?