gpt4 book ai didi

python - 为什么 pandas.cut 将第一个元素归类为 NaN?

转载 作者:行者123 更新时间:2023-12-01 06:24:04 24 4
gpt4 key购买 nike

我试图首先剪切,然后使用 np.linspace 和 pd.cut 标签对数值数组进行分类。我的代码如下所示。

import numpy as np
import pandas as pd

n=4 #number of edges to group 'a' to three categories.
a = np.arange(2.0,5.0,0.1)
dfa = pd.DataFrame(a, columns=['a'])
edges, step = np.linspace(np.floor(a.min()), np.ceil(a.max()), num = n, retstep=True)
dfa['a_label'] = pd.cut(x=dfa['a'], bins=list(edges), labels=range(n-1))
print(edges)
print(dfa.head())

但是,当我运行数组时,我得到了数组中第一个元素的 NaN,如下面的结果所示。按理说,第一个元素2.0应该包含在第一类中。请帮我弄清楚出了什么问题。提前致谢。

[2. 3. 4. 5.]
a a_label
0 2.0 NaN
1 2.1 0.0
2 2.2 0.0
3 2.3 0.0
4 2.4 0.0

最佳答案

将参数include_lowest-True添加到cut :

include_lowest bool, default False
Whether the first interval should be left-inclusive or not.

dfa['a_label'] = pd.cut(x=dfa['a'], bins=list(edges), labels=range(n-1), include_lowest=True)
print(dfa.head())
a a_label
0 2.0 0
1 2.1 0
2 2.2 0
3 2.3 0
4 2.4 0

关于python - 为什么 pandas.cut 将第一个元素归类为 NaN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60247417/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com