首页 > 解决方案 > 在熊猫数据框列中找到最大差异

问题描述

我在下面有一个熊猫数据框:

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,我都希望将行的值存储在一个变量中,以便我可以访问特定的列。

这可能吗?任何帮助将非常感激!

标签: pythonpython-3.xpandasdataframe

解决方案


是的你可以:

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']

推荐阅读