我是python的新手,有一个简单的问题,尚未找到答案。 可以说我有一个c(t)的时间序列:
t_ c_
1 40
2 41
3 4
4 5
5 7
6 20
7 20
8 8
9 90
10 99
11 10
12 5
13 8
14 8
15 19
我现在要针对值c在特定范围内连续持续多长时间以及这些时间间隔出现的频率来评估该系列。
因此,结果将包括三列:c(合并),持续时间(合并),频率。转换为简单的示例,结果可能如下所示:
c_ Dt_ Freq_
0-50 8 1
50-100 2 1
0-50 5 1
你能给我个建议吗?
预先感谢
Ulrike
// EDIT: 感谢您的答复!我的示例数据有些瑕疵,因此无法显示我的问题的一部分。因此,这是一个新的数据系列:
series=
t c
1 1
2 1
3 10
4 10
5 10
6 1
7 1
8 50
9 50
10 50
12 1
13 1
14 1
如果我应用下面克里斯托夫(Christoph)提出的代码:
bins = pd.cut(series['c'], [-1, 5, 100])
same_as_prev = (bins != bins.shift())
run_ids = same_as_prev.cumsum()
result = bins.groupby(run_ids).aggregate(["first", "count"])
我收到这样的结果:
first count
(-1, 5] 2
(5, 100] 3
(-1, 5] 2
(5, 100] 3
(-1, 5] 3
但是我对这样的东西更感兴趣:
c length freq
(-1, 5] 2 2
(-1, 5] 3 1
(5, 100] 3 2
我该如何实现?以及如何在KDE图中绘制它?
最好
Ulrike