码迷,mamicode.com
首页 > 其他好文 > 详细

Pandas-05-数据离散化

时间:2021-05-04 16:02:26      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:列表   com   指定   前缀   涨跌   strong   one   load   ade   

1. 为什么要离散化

连续属性离散化的目的是为了简化数据结构,数据结构离散化技术可以用来减少给定连续属性值的个数。离散化方法经常作为数据挖掘的工具。

2. 什么是数据的离散化

连续属性的离散化就是在连续属性的值域上,将值域划分为若干个离散的区间,最后用不同的符号或整数、值代表落在每个子区间中的属性值。

3. 股票的涨跌幅离散化

对股票每日的"p_change"进行离散化

3.1. 读取股票数据

data = pd.read_csv("./data/stock_day.csv")
p_change = data["p_change"]

2018-02-27    2.68
2018-02-26    3.02
2018-02-23    2.42
2018-02-22    1.64
2018-02-14    2.05
              ... 
2015-03-06    8.51
2015-03-05    2.02
2015-03-04    1.57
2015-03-03    1.44
2015-03-02    2.62
Name: p_change, Length: 643, dtype: float64

3.2. 将股票涨跌幅数据进行分组

  • pd.qcut(data, q):
    • 对数据进行分组,q为组数,一般会与value_counts搭配使用,统计每组的个数
  • series.values_counts():统计每组个数
# 自行分组
qcut = pd.qcut(p_change, 10)
# 计算分到每组数据个数
qcut.value_counts()

(5.27, 10.03]                    65
(0.26, 0.94]                     65
(-0.462, 0.26]                   65
(-10.030999999999999, -4.836]    65
(2.938, 5.27]                    64
(1.738, 2.938]                   64
(-1.352, -0.462]                 64
(-2.444, -1.352]                 64
(-4.836, -2.444]                 64
(0.94, 1.738]                    63
Name: p_change, dtype: int64

自定义区间分组:

  • pd.cut(data, bins):
    • data:要分组的数据
    • bins:列表,自定义的区间列表:[-2, -1, 0, 1, 2]
# 自己指定分区区间
bins = [-100, -7, -5, -3, 0, 3, 5, 7, 100]
p_cut = pd.cut(p_change, bins)

3.3. 股票涨跌幅分组数据变成one-hot编码

  • 什么是one-hot编码

    把每个类别生成一个布尔列,这些列中只有一列可以为这个样本取值为1。其又被称为热编码。

    把下图中左边的表格转化为右边形式表示:

技术图片

  • pandas.get_dummies(data, prefix=None)

    • data:array-like,Series,or DataFrame
    • prefix:分组名字前缀
    # 得出one-hot编码矩阵
    dummies = pd.get_dummies(p_cut, prefix="rise")
    

    技术图片

4. 总结

  • 数据离散化
    • 可以用来减少给定连续属性值的个数
    • 在连续属性的值域上,将值域划分为若干个离散的区间,最后用不同的符号或整数值代表落在每个子区间中的属性值。
  • qcut、cut实现数据分组
    • qcut:大致分为数量相同的几组
    • cut:自定义分组区间
  • get_dummies实现哑变量矩阵

Pandas-05-数据离散化

标签:列表   com   指定   前缀   涨跌   strong   one   load   ade   

原文地址:https://www.cnblogs.com/fade-color/p/14725727.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!