4. 离散化
连续数据常常会被离散化或者拆分成面元
bin
。可以通过pandas.cut()
函数来实现:pandas.cut(x, bins, right=True, labels=None, retbins=False, precision=3,
include_lowest=False)
x
:一维的数据。bins
:一个整数或者一个序列。- 整数:它指定了划分区间的数量。每个区间是等长的,且最左侧的区间的左侧比
x
最小值小0.1%
;最右侧的区间的右侧比x
最大值大0.1%
。 - 一个序列:它给出了
bins
的每个划分点。
- 整数:它指定了划分区间的数量。每个区间是等长的,且最左侧的区间的左侧比
right
:一个布尔值。如果为True
,则区间是左开右闭;否则区间是左闭右开的区间。labels
:一个array
或者None
。如果为一个array
,则它指定了结果bins
的label
(要求长度与bins
数量相同)。如果为None
,则使用区间来表示。retbins
:一个布尔值。如果为True
,则返回bins
precision
:一个整数,给出存储和显示bin label
的精度include_lowest
:一个布尔值。如果为True
,则最左侧bin
的左侧是闭区间
返回的是一个
Categorical
对象或者Series
对象。该函数类似于numpy.histogram()
函数。另外一个划分的函数是:
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
参数)