python - Pandas cut 函数提供的类别少于预期

标签 python python-3.x pandas

我有一个看起来像这样的 df

   var1  var2  var3  var4  var5  var6
0    0.3   0.6   0.7   0.8   0.7   0.5
1    0.7   0.6   0.4   0.6   0.7   1.0
2    0.0   0.0   0.0   0.0   0.0   0.0
3    0.1   0.9   0.5   0.7   0.7   0.9
4    0.3   2.3   0.4   2.0   1.9   1.9
5    4.0   1.2   0.6   1.2   2.6   3.1
6    0.0   0.0   0.0   0.0   0.0   0.0
7    0.0   0.2   0.1   0.2   0.2   0.2
8    0.1   0.1   0.1   0.1   0.1   0.1
9    0.0   0.0   0.0   0.0   0.0   0.0
10   0.1   0.1   0.1   0.2   0.1   0.1
11   0.0   0.0   0.0   0.0   0.0   0.1
12   0.0   0.0   0.0   0.0   0.0   0.0
13   0.0   0.0   0.0   0.0   0.0   0.0

我想为每一列创建 4 个 bin(严格来说是 4 个 bin),所以我在每一列中分别应用 pandas cut 函数。所以我愿意

import pandas as pd
qt = so.apply(lambda x: pd.cut(x,4))

如果我这样做

qt.var1.unique()

我明白了

[(-0.004, 1.0], (3.0, 4.0]]
Categories (2, interval[float64]): [(-0.004, 1.0] < (3.0, 4.0]]

只有 2 个类别。

知道为什么会这样吗?

最佳答案

对于 var1您将数据拆分为 var1 范围内的等宽容器.所以你的范围是 04所以你得到间隔:

Categories (4, interval[float64]): [(-0.004, 1.0] < (1.0, 2.0] < (2.0, 3.0] < (3.0, 4.0]]

unique只显示 2,因为 4 个区间中只有 2 个值。

-0.004 的解释:

The range of x is extended by .1% on each side to include the minimum and maximum values of x.

关于python - Pandas cut 函数提供的类别少于预期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60111257/

相关文章:

python - Raspberry Pi 3B 上的 pymodbus 和电表连接错误

python - 有没有办法将数组传递给 python 泛型?

python - 在Linux上使用Python模块编译GEOS 3.6.2

Python Pandas 混合 bool Yes/True 和 NaN 列

python - pyqt自动完成表格

python - 如何在python中使用pyarrow连接到hdfs

python - Pandas,从 DataFrame 生成一个表,其中多列合并到新索引中

python - 标准化后的 PIL 逊相关性

python - SQLAlchemy:两个日期之间的差异

python - 在 Python 中优化 itertools 排列