【发布时间】:2017-09-18 14:27:20
【问题描述】:
我有 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。如果公司的 P/BV 比率在宇宙中最低的 1%,它将获得排名 100(因为这里最低是最好的)。最高比率获得排名 1。
如果缺少值 - 存在 NaN - 分配等级 50
我需要像这样评估每一列,所以我需要为每个比率列创建新列并用排名值填充它。
某些比率在其值最高时是最好的,例如 NCB 列。
稍后我将在最后一列中添加每家公司的所有排名值,我可以管理它。我只是无法使这个排名起作用。有人可以帮帮我吗?
提前谢谢你:-)
【问题讨论】:
-
到目前为止您尝试过什么?此外,对于那些不知道这些比率意味着什么的人,最好向我们提供所需的结果,以便我们知道您想要做什么
-
@MattR 好吧,我在那一刻停了下来,因为我意识到我对 Pandas 的了解不足以进入该排名。通常,假设列 P/BV 有 400 行,值例如从 0.00 到 100.00。然后从 0.00 到 1.00 的值在前 1% 中,所有在 P/BV 列中具有该值的公司将被分配排名 100。从 1.01 到 2.00 的值在 2% 中,具有该值的公司将是排名第 99 等。