我有Pandas DataFrame,在那里我导入了包含几百行的Excel电子表格。每一行是一个公司名称,每一列都有一些基本数据,如比率等。在
Symbol Name P/BV PE NCB
A AGT 4.382 42.59 0.0145
AAAP AdvAc 6.91 NaN -0.0003
AAME AtlAm 0.6205 29.55 0.0089
AAN Aaron 2.093 23.89 0.0213
有更多的列和更多的行,但我认为这足以说明数据。有时比率没有值,所以自动填充了NaN值。在
我想做的是评估每个公司:
每一列(例如p/BV)都是一个包含从最低到最高的值的宇宙-创建了一个100%的范围。每个公司将在新列中进行评估:我想为每个公司分配1到100的百分位排名。如果公司的市盈率是全球最低的1%,那么它的排名是100(因为这里最低的是最好的)。最高比率获得排名1。
如果缺少一个值-存在NaN-分配秩50
我需要像这样计算每个列,所以我需要为每个比率列创建新列,并用排名值填充它。
有些比率在它的值最高时是最好的,比如NCB列。
稍后,我将在最后一列中添加每个公司的所有排名值,我可以对其进行管理。我就是不能让这个排名生效。有人能帮我吗?在
提前感谢:-)
下面是一个使用类似数据的示例。在本例中:
示例数据帧:
现在将^{} 与参数
^{pr2}$pct=True
一起使用。比较耗时的部分是,您需要将它分别应用于不同的列,因为您需要对一些升序和一些降序进行排序。在最后,用50填充
NaN
值:结果如下:
您需要的组合代码:
相关问题 更多 >
编程相关推荐