为具有阈值的时间序列生成新列

时间:2018-12-11 15:57:49

标签: python-3.x time-series jupyter-notebook

我只是从这个python开始。 我有一个TS数据集,如下所示:
IN: adata.head()
退出:

datetime    wgt_gain
2018-05-08 16:00:00     0.0
2018-05-08 17:00:00     0.0
2018-05-08 18:00:00     0.0
2018-05-08 19:00:00     0.0
2018-05-08 20:00:00     0.0

它的描述是:
IN:adata.head()
退出:

    wgt_gain
count   4227.000000
mean    0.003929
std     0.177180
min     -0.966667
25%     -0.066667
50%     0.000000
75%     0.050000
max     0.985000

我想应用一个新列,其阈值类似于以下内容: 值: 在0%和25%之间-> 1
在25%和50%之间-> 2
...
在75%和100%之间-> 4
并类似于负值。

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以使用pd.cut将值分成离散的间隔,并将bin设置为所需的quantiles

adata['new_column'] = (pd.cut(adata.weight_gain,
                              bins = adata.wgt_gain.quantile([0,.25,.5,.75,1]),
                              labels=[1,2,3,4]))