在熊猫数据框列中找到最大的差异

时间:2021-07-01 01:45:35

标签: python python-3.x pandas dataframe

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

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之间差异最大的Ticker(Price2减去Price)。无论选择什么 Ticker,我都希望将行的值存储在一个变量中,以便我可以访问特定的列。

这可能吗?任何帮助将不胜感激!

4 个答案:

答案 0 :(得分:2)

是的,你可以:

differential = df['Price2'] - df['Price']
ticker = df.loc[differential.idxmax(), 'Ticker']

但是看到您正在处理股票价格,绝对价格差异没有什么意义。 10 美元的差价对 136 美元的股票(如苹果)的意义大于对 3400 美元的股票(如亚马逊)的影响,这是对 41.8 万美元的股票(伯克希尔哈撒韦公司)的舍入误差。更好的方法是使用差异百分比:

differential = df['Price2'] / df['Price'] - 1
ticker = df.loc[differential.idxmax(), 'Ticker']

答案 1 :(得分:0)

您可以通过idxmax

查看
idx = (df['Price2'] - df['Price']).idxmax()
df.loc[idx]

答案 2 :(得分:0)

s=df.iloc[abs(df['Price2'].sub(df['Price'])).idxmax(),:]#To acess all columns

s=df.loc[abs(df['Price2'].sub(df['Price'])).idxmax(),['Price2','Price']] #to access Price2 and Price

答案 3 :(得分:0)

DataStore