有时可以直接根据业务特征对数据进行离散化,指定需要分区的区间或数据点,形成最终的标记数据。
假设有一组数据:
a = [1,3,7,10,23,50],
以10,30为分割点,将数据分为三个区间。
不指定区间名称
import pandas as pd
a = [1,3,7,10,23,50]
cut_a = pd.cut(a,[0,10,30,50])
[(0, 10], (0, 10], (0, 10], (0, 10], (10, 30], (30, 50]]
Categories (3, interval[int64]): [(0, 10] < (10, 30] < (30, 50]]
指定区间名称
import pandas as pd
a = [1,3,7,10,23,50]
cut_a = pd.cut(a,[0,10,30,50],labels=[1,2,3])
[1, 1, 1, 1, 2, 3]
Categories (3, int64): [1 < 2 < 3]
指定区间左闭
import pandas as pd
a = [1,3,7,10,23,50]
cut_a = pd.cut(a,[0,10,30,50],right=False)
[[0.0, 10.0), [0.0, 10.0), [0.0, 10.0), [10.0, 30.0), [10.0, 30.0), NaN]
Categories (3, interval[int64]): [[0, 10) < [10, 30) < [30, 50)]