python - 从 pandas qcut 间隔中删除小数点(将间隔转换为整数)

标签 python pandas quantile

我在名为example 的对象的列中有很多分数。我想将这些分数分成十分位数,并为每一行分配相应的十分位数间隔。我尝试了以下方法:

import random
import pandas as pd
random.seed(420) #blazeit
example = pd.DataFrame({"Score":[random.randrange(350, 1000) for i in range(1000)]})
example["Decile"] = pd.qcut(example["Score"], 10, labels=False) + 1 # Deciles as integer from 1 to 10
example["Decile_interval"] = pd.qcut(example["Score"], 10) # Decile as interval

这给了我正在寻找的十分位数。但是,我希望 example["Decile_interval"] 中的十分位数是整数,而不是 float 。我试过 precision=0 但它只在每个数字的末尾显示 .0

如何将区间中的 float 转换为整数?

编辑:正如@ALollz 指出的那样,这样做会改变十分位分布。但是,我这样做是为了演示目的,所以我并不担心。支持@JuanC 实现这一点并发布一个解决方案。

最佳答案

这是我使用简单的 apply 函数的解决方案:

example["Decile_interval"] = example["Decile_interval"].apply(lambda x: pd.Interval(left=int(round(x.left)), right=int(round(x.right))))

关于python - 从 pandas qcut 间隔中删除小数点(将间隔转换为整数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57856740/

相关文章:

python - Jinja2 映射列表到字典

python - 以 Pandas Dataframe 作为值的字典的 JSON 格式

python - 如何向 pandas hdf5 添加另一个数据框

r - 如何在数据帧上应用分位数

Python:又一个 AttributeError: 'module' 对象没有属性

python - 我怎样才能简单地将参数传递给子类中的父构造函数?

Python:将JSON(通过URL返回)转换成List

python - 性能考虑 pandas concat 附加

python - 使用 python 用分位数索引替换 numpy 数组中的条目

r - R data.table 中具有外部指定四分位数断点的四分位数排序器