python - 将 qcut 应用于具有用户定义的百分位值的数据框列
问题描述
我有两个数据框,如下所示。
dataframe1 =
Index features constant
0 AA 0.25
1 AB 0.45
2 AC 0.78
3 AD 0.91
4 AE 0.12
dataframe2 =
Index AA AB AC AD AE
0 10 45 15 14 98
1 14 55 55 48 70
2 25 75 87 46 91
3 47 87 25 71 10
4 47 65 58 48 12
5 18 45 69 73 5
现在通过做-->>
qcut(dataframe2['AA'],5,labels = list(range(1,6)))
我可以根据最小值、百分位数(0.2)、百分位数(0.4)、百分位数(0.6)、百分位数(0.8)和最大值来获取垃圾箱。
但我想知道我是否可以将 qcut 应用于用户定义的百分位数。
说特定功能的垃圾箱应该如下所示。
bin1 = (min) -to- percentile(constant + ((1-constant)*0.2))
bin2 = percentile(constant + ((1-constant)*0.2)) -to- percentile(constant + ((1-constant)*0.4))
bin3 = percentile(constant + ((1-constant)*0.4)) -to- percentile(constant + ((1-constant)*0.6))
bin4 = percentile(constant + ((1-constant)*0.6)) -to- percentile(constant + ((1-constant)*0.8))
bin5 = percentile(constant + ((1-constant)*0.8)) -to- (max)
希望你能理解。需要帮忙。提前致谢。
解决方案
只需将百分位数传递给qcut
percentiles = [0, constant + ((1-constant)*0.2), constant + ((1-constant)*0.4), constant + ((1-constant)*0.6), constant + ((1-constant)*0.8), 1]
qcut(dataframe2['AA'], percentiles)
假设您所有的值都是有效的百分位数,即在 (0,1) 之间
推荐阅读
- javascript - 调试此 Google 展示广告 javascript
- c# - C# 从字节数组中获取第一个 2 个整数
- javascript - jQuery检查集合中的一项是否具有价值
- awk - 匹配两个文件中的值并替换列中的值
- delphi - 异常消息来自哪里?
- java - 如何使用 XMLStreamWriter/IndentingXMLStreamWriter 将“而不是”写入 XML 输出
- mysql - SQL 查询未按预期返回
- iframe - 在跨域 iframe 消息中正确预防 XSS
- ocaml - 给定OCaml中的条件,递归地从列表中删除元素?
- java - Elasticsearch:提供了 _id 的批量索引 json