python - 将百分位数计算为 Pandas 中的一列
问题描述
我有以下数据框。我正在尝试计算“新近度”字段所在的百分位数并将其添加为自己的字段。我一直在尝试 Pandas 中的分位数功能,但得到如下所示的 NaN 输出。
谁能建议我如何做到这一点?
id recency frequency monetary recencypct
0 1 61 61 6052.50 NaN
1 2 43 97 1743.79 NaN
2 3 71 55 7293.29 NaN
3 4 32 77 4493.31 NaN
4 5 7 14 2036.86 NaN
5 6 57 41 1380.94 NaN
6 7 12 47 9451.65 NaN
7 8 98 12 8687.91 NaN
8 9 24 90 6350.54 NaN
9 10 41 8 599.80 NaN
10 11 61 17 212.13 NaN
11 12 29 89 8501.65 NaN
12 13 9 27 7165.10 NaN
13 14 77 31 6011.45 NaN
14 15 37 8 9491.75 NaN
15 16 100 76 1894.23 NaN
16 17 25 8 5753.13 NaN
17 18 19 45 333.16 NaN
18 19 14 90 8762.78 NaN
19 20 16 20 231.76 NaN
解决方案
如果调用了数据框df
,则尝试:
df['recencypct'] = df.recency.rank(pct=True)
输出(漂亮打印):
+----+------+-----------+-------------+------------+--------------+
| | id | recency | frequency | monetary | recencypct |
|----+------+-----------+-------------+------------+--------------|
| 0 | 1 | 61 | 61 | 6052.5 | 0.775 |
| 1 | 2 | 43 | 97 | 1743.79 | 0.65 |
| 2 | 3 | 71 | 55 | 7293.29 | 0.85 |
| 3 | 4 | 32 | 77 | 4493.31 | 0.5 |
| 4 | 5 | 7 | 14 | 2036.86 | 0.05 |
| 5 | 6 | 57 | 41 | 1380.94 | 0.7 |
| 6 | 7 | 12 | 47 | 9451.65 | 0.15 |
| 7 | 8 | 98 | 12 | 8687.91 | 0.95 |
| 8 | 9 | 24 | 90 | 6350.54 | 0.35 |
| 9 | 10 | 41 | 8 | 599.8 | 0.6 |
| 10 | 11 | 61 | 17 | 212.13 | 0.775 |
| 11 | 12 | 29 | 89 | 8501.65 | 0.45 |
| 12 | 13 | 9 | 27 | 7165.1 | 0.1 |
| 13 | 14 | 77 | 31 | 6011.45 | 0.9 |
| 14 | 15 | 37 | 8 | 9491.75 | 0.55 |
| 15 | 16 | 100 | 76 | 1894.23 | 1 |
| 16 | 17 | 25 | 8 | 5753.13 | 0.4 |
| 17 | 18 | 19 | 45 | 333.16 | 0.3 |
| 18 | 19 | 14 | 90 | 8762.78 | 0.2 |
| 19 | 20 | 16 | 20 | 231.76 | 0.25 |
+----+------+-----------+-------------+------------+--------------+
参考:http ://www.datasciencemadesimple.com/percentile-rank-column-pandas-python-2/
推荐阅读
- javascript - 试图提出一个可以在对象的特定级别上进行过滤的函数
- ios - Xamarin Forms如何在iOS上设置标签的最小宽度
- c++ - 从公式计算总和,结果错误
- python - ModuleNotFoundError:没有名为“fyers_api”的模块
- assembly - 在汇编中,如何从另一个字符串中的一个字符串中查找符号?
- python - 如何从字符串中的计算器表达式中删除前导零?Python
- twitter-bootstrap - 如何使我的 Bootstrap 4 模态大小与 Bootstrap 3 相同
- python - Python discord.py on_reaction_removed() 未调用
- javascript - 为什么这个for循环恢复为0并且永远不会到达这个数组大小的末尾
- xml - 通过 XSL 添加 colspan