首页 > 解决方案 > 如何找到给定表中返回最大化收益和最小化方差的行

问题描述

假设我有一个 DataFrame,它由三列(索引、返回、波动率)和五行组成。我想收到最大化回报价值和最小化波动价值的指数,但是第二个条件不如第一个重要。

我怎样才能收到呢?我尝试对两列应用方法 .rank() ,然后按它们排序,但效果很差。

标签: pythonpython-3.xpandasdataframe

解决方案


您可以首先选择数据帧的子集,其中包含Return最大的行,然后用于idxmin()返回第一次出现的索引 minimum Volatility

这是一个数据框示例:

import pandas as pd
mydict = {'Return': [99999,1,1,99999, 809],
    'Volatility': [1, 2, 3, 4, 7]
    }

 df = pd.DataFrame(mydict, columns = ['Return', 'Volatility'])

对于此示例,df[df.Return==df.Return.max()]产生:

回报波动率
0 99999 1
3 99999 4

df[df.Return==df.Return.max()].Volatility.idxmin()返回:

0

这是与Volatility1 相关联的索引。


推荐阅读