Pandas数据离散化
为什么要离散化
- 连续属性离散化的目的是为了简化数据结构,数据离散化技术可以用来减少给定连续属性值的个数。离散化方法经常作为数据挖掘的工具
- 扔掉一些信息,可以让模型更健壮,泛化能力更强
什么是数据的离散化
连续属性的离散化就是在连续属性的值域上,将值域划分为若干个离散的区间,最后用不同的符号或整数 值代表落在每个子区间中的属性值
- 分箱
案例
1.先读取股票的数据,筛选出p_change数据
data = pd.read_csv("./data/stock_day.csv")
p_change= data['p_change']
2.将股票涨跌幅数据进行分组
使用的工具:
- pd.qcut(data, bins)——等深分箱:
- 对数据进行分组将数据分组 一般会与
value_counts
搭配使用,统计每组的个数
- 对数据进行分组将数据分组 一般会与
- series.value_counts():统计分组次数
# 自行分组
qcut = pd.qcut(p_change, 10)
# 计算分到每个组数据个数
qcut.value_counts()
自定义区间分组:
- pd.cut(data, bins)——等宽分箱:
- bins是整数—等宽
- bins是列表--自定义分箱
# 自己指定分组区间
bins = [-100, -7, -5, -3, 0, 3, 5, 7, 100]
p_counts = pd.cut(p_change, bins)