4. 离散化

  1. 连续数据常常会被离散化或者拆分成面元bin。可以通过pandas.cut()函数来实现:

    1. pandas.cut(x, bins, right=True, labels=None, retbins=False, precision=3,
    2. include_lowest=False)
    • x:一维的数据。

    • bins:一个整数或者一个序列。

      • 整数:它指定了划分区间的数量。每个区间是等长的,且最左侧的区间的左侧比x最小值小0.1%;最右侧的区间的右侧比x最大值大0.1%
      • 一个序列:它给出了bins的每个划分点。
    • right:一个布尔值。如果为True,则区间是左开右闭;否则区间是左闭右开的区间。

    • labels:一个array或者None。如果为一个array,则它指定了结果binslabel(要求长度与bins数量相同)。如果为None,则使用区间来表示。

    • retbins:一个布尔值。如果为True,则返回bins

    • precision:一个整数,给出存储和显示bin label的精度

    • include_lowest:一个布尔值。如果为True,则最左侧bin的左侧是闭区间

    返回的是一个Categorical对象或者Series对象。该函数类似于numpy.histogram()函数。

  2. 另外一个划分的函数是:

    1. pandas.qcut(x, q, labels=None, retbins=False, precision=3)
    • q:一个整数或者序列。

      • 整数:它指定了划分区间的数量。
      • 一个序列:它给出了百分比划分点。比如[0,0.25,0.5,0.75,0.1]0.25代表25%划分点。如果数据不在任何区间内,则标记为NaN
    • 其他参数与cut相同。(qcut没有bins参数)

    cut0 cut1 cut2