数据的拆分
pandas返回的是一个特殊的Categorical对象。 你可以将其看做一组表 示面元名称的字符串。 实际上,它含有一个表示 不同分类名称的levels数组以及一个为年龄数据进行标号的labels属性。
跟“区间”的数学符号 一样,圆括号表示开端,而方括号则表示闭端(包括)。 哪边是闭端可以通过right.
也可以自定义label名称。
代码演示如下:
from pandas import Series,DataFrame
import pandas as pd
import numpy as np
from numpy import nan as NA
from matplotlib import pyplot as plt
ages = [20,22,25,27,21,23,37,31,61,45,41,32]
#将所有的ages进行分组
bins = [18,25,35,60,100]
#使用pandas中的cut对年龄数据进行分组
cats = pd.cut(ages,bins)
cats
#打印结果:
[(18, 25], (18, 25], (18, 25], (25, 35], (18, 25], ..., (25, 35], (60, 100], (35, 60], (35, 60], (25, 35]]
Length: 12
Categories (4, interval[int64]): [(18, 25] < (25, 35] < (35, 60] < (60, 100]]
#调用pd.value_counts方法统计每个区间的人数
pd.value_counts(cats)
#打印结果:
(18, 25] 5
(35, 60] 3
(25, 35] 3
(60, 100] 1
dtype: int64
#显示第几个区间index值
cats.codes
#打印结果:
array([0, 0, 0, 1, 0, 0, 2, 1, 3, 2, 2