即使我在使用 pd.cut 时提供了标签列表,垃​​圾箱也没有被标记

the bins are not being labeled even if i have provided the list of labels while using pd.cut

我想使用 pd.cat 将数据放入容器中,它有一个用于标记容器的参数标签,但它不起作用

执行代码没有错误,但没有标签

输入

pd.cut(datatot['YearBuilt'].values,bins=pd.IntervalIndex.from_breaks([1872,1900,1928,1956,1984,2011],closed='left'),labels=["vvo","vo","o","n","r"]) 

输出:

 [[1984, 2011), [1956, 1984), [1984, 2011), [1900, 1928), [1984, 2011), ..., [1956, 1984), [1956, 1984), [1956, 1984), [1984, 2011), [1984, 2011)]
 Length: 2919
 Categories (5, interval[int64]): [[1872, 1900) < [1900, 1928) < [1928, 1956) < [1956, 1984) < [1984, 2011)]

数据应根据标签而不是间隔

标记为'vvo'或'vo'

您可以省略 IntervalIndex 并将左闭区间的参数 right=False 添加到 cut:

datatot = pd.DataFrame({'YearBuilt':range(1880, 2020, 10)})

datatot['orig'] = pd.cut(datatot['YearBuilt'].values,bins=pd.IntervalIndex.from_breaks([1872,1900,1928,1956,1984,2011],closed='left'),labels=["vvo","vo","o","n","r"])
#not specifiend labels for compare
datatot['new1'] = pd.cut(datatot['YearBuilt'],bins=[1872,1900,1928,1956,1984,2011], right=False) 
#specified labels
datatot['new2'] = pd.cut(datatot['YearBuilt'],bins=[1872,1900,1928,1956,1984,2011], right=False,labels=["vvo","vo","o","n","r"]) 
print (datatot)
    YearBuilt          orig          new1 new2
0        1880  [1872, 1900)  [1872, 1900)  vvo
1        1890  [1872, 1900)  [1872, 1900)  vvo
2        1900  [1900, 1928)  [1900, 1928)   vo
3        1910  [1900, 1928)  [1900, 1928)   vo
4        1920  [1900, 1928)  [1900, 1928)   vo
5        1930  [1928, 1956)  [1928, 1956)    o
6        1940  [1928, 1956)  [1928, 1956)    o
7        1950  [1928, 1956)  [1928, 1956)    o
8        1960  [1956, 1984)  [1956, 1984)    n
9        1970  [1956, 1984)  [1956, 1984)    n
10       1980  [1956, 1984)  [1956, 1984)    n
11       1990  [1984, 2011)  [1984, 2011)    r
12       2000  [1984, 2011)  [1984, 2011)    r
13       2010  [1984, 2011)  [1984, 2011)    r