# 导入模块 import pandas as pd import numpy as np # 使用 cut 的默认参数 # cut的作用:对数据进行分组处理。bins 默认是左开右闭。 # 本例中,是将 x 中的数据,逐个归类到 bins-“(1, 4], (4, 6], (6, 10]” 中。 pd.cut(x=np.array([1, 7, 5, 4, 6, 3]), bins=[1, 4, 6, 10])
""" 第1组:right 参数 """ # 1) True:左开右闭,( , ] # 2) False:左闭右开,[ , ) pd.cut(np.array([1, 7, 5, 4, 6, 3]), [1, 4, 6, 10], right=True) pd.cut(np.array([1, 7, 5, 4, 6, 3]), [1, 4, 6, 10], right=False)
""" 第2组:labels与ordered 参数 """ # labels:分组后的组名 # ordered:指定 labels 是否为有序数列。当 labels=False 时,必须指定 labels pd.cut(np.array([1, 7, 5, 4, 6, 3]), [1, 4, 6, 10], labels=["c", 'a', 'b'], ordered=True) pd.cut(np.array([1, 7, 5, 4, 6, 3]), [1, 4, 6, 10], labels=["c", 'a', 'b'], ordered=False) # pd.cut(np.array([1, 7, 5, 4, 6, 3]), [1, 4, 6, 10], ordered=False) # 这样会报错
""" 第3组:retbins 参数 """ # 是否返回 bins 值。当bins为一个int时,可以得到划分后的区间。 pd.cut(np.array([1, 7, 5, 4, 6, 3]), [1, 4, 6, 10], labels=["c", 'a', 'b'], retbins=True) pd.cut(np.array([1, 7, 5, 4, 6, 3]), [1, 4, 6, 10], labels=["c", 'a', 'b'], retbins=False)
""" 第4组:precision 参数 """ # 指定 分组区间的小数点位数,默认为3 pd.cut(np.array([1, 7, 5, 4, 6, 3]), 3, precision=1) pd.cut(np.array([1, 7, 5, 4, 6, 3]), 3, precision=2)
""" 第5组:include_lowest 参数 """ # 1) True:第一个区间的最小值,包含在内 # 2) False:第一个区间的最小值,不包含在内 pd.cut(np.array([1, 7, 5, 4, 6, 3]), [1, 4, 6, 10], include_lowest=True) pd.cut(np.array([1, 7, 5, 4, 6, 3]), [1, 4, 6, 10], include_lowest=False) # 数字 1,没有包含在分组结果中
""" 第6组:duplicates 参数 """ # 1) "raise":如果分组包含重复,报错 # 2) "drop":如果分组包含重复,删除重复值 pd.cut(np.array([1, 7, 5, 4, 6, 3]), [1, 4, 6, 6, 10], duplicates="drop") # 如果 bins 参数中的值存在重复,则报删除重复值 pd.cut(np.array([1, 7, 5, 4, 6, 3]), [1, 4, 6, 6, 10], duplicates="raise") # 如果 bins 参数中的值存在重复,则报错



