我在下面有一个熊猫数据框:
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,我都希望将行的值存储在一个变量中,以便我可以访问特定的列。
这可能吗?任何帮助将不胜感激!
答案 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