在我的数据集中,有一个看起来像这样的列:
[111, 112, None, 113, 114, 115, 116, None, 117, 118, 119]
我想将此列分类为3个分类,以便得到
[0, 0, None, 0, 1, 1, 1, None, 2, 2, 2]
如何使用pandas.cut做到这一点?它不会接受None作为输入中的元素
IIUC,
s = pd.Series([111, 112, None, 113, 114, 115, 116, None, 117, 118, 119])
pd.cut(s, bins=[0, 113, 116, 120], labels=[0, 1, 2])
输出:
0 0
1 0
2 NaN
3 0
4 1
5 1
6 1
7 NaN
8 2
9 2
10 2
dtype: category
Categories (3, int64): [0 < 1 < 2]
或尝试qcut
,
pd.qcut(s, 3, labels=[0, 1, 2])
输出:
0 0
1 0
2 NaN
3 0
4 1
5 1
6 1
7 NaN
8 2
9 2
10 2
dtype: category
Categories (3, int64): [0 < 1 < 2]