pandas.cut,将一系列数据进行分组,对cut各参数的理解

pandas.cut,将一系列数据进行分组,对cut各参数的理解,第1张

# 导入模块
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 参数中的值存在重复,则报错  

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/918395.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存