本文介绍了连续计数多次,总和的结果为正(或负)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

第一部分




解决方案

如果我正确理解你的问题,你可以这样做:

 在[76]中:df.groupby((df.close.diff()< 0).cumsum())。cumcount()
输出[ 76]:
0 0
1 1
2 2
3 0
4 1
5 2
6 0
7 0
dtype:int64





 在[114]中:df.groupby((df.close.diff() 0).cumsum())。cumcount()。value_counts()。to_frame('count')
输出[114]:
count
0 4
2 2
1 2

数据集:

 在[78]中:df 
输出[78]:
数据ora打开最大最小关闭
0 20160801 0 1.11781 1.11781 1.11772 1.11773
1 20160801 100 1.11774 1.11779 1.11773 1.11777
2 20160801 200 1.11779 1.11800 1.11779 1.11795
3 20160801 300 1.11794 1.11801 1.11771 1.11771
4 20160801 400 1.11766 1.11772 1.11763 1.11772
5 20160801 500 1.11774 1.11798 1.11774 1.11796
6 20160801 600 1.11796 1.11796 1.11783 1.11783
7 20160801 700 1.11783 1.11799 1.11783 1.11780

在[80]中:df.close.diff()
输出[80 ]:
0 NaN
1 0.00004
2 0.00018
3 -0.00024
4 0.00001
5 0.00024
6 -0.00013
7 -0.00003
名称:close,dtype:float64


First Part

解决方案

If i understood your question correctly you can do it this way:

In [76]: df.groupby((df.close.diff() < 0).cumsum()).cumcount()
Out[76]:
0    0
1    1
2    2
3    0
4    1
5    2
6    0
7    0
dtype: int64
In [114]: df.groupby((df.close.diff() < 0).cumsum()).cumcount().value_counts().to_frame('count')
Out[114]:
   count
0      4
2      2
1      2

Data set:

In [78]: df
Out[78]:
       data  ora     open      max      min    close
0  20160801    0  1.11781  1.11781  1.11772  1.11773
1  20160801  100  1.11774  1.11779  1.11773  1.11777
2  20160801  200  1.11779  1.11800  1.11779  1.11795
3  20160801  300  1.11794  1.11801  1.11771  1.11771
4  20160801  400  1.11766  1.11772  1.11763  1.11772
5  20160801  500  1.11774  1.11798  1.11774  1.11796
6  20160801  600  1.11796  1.11796  1.11783  1.11783
7  20160801  700  1.11783  1.11799  1.11783  1.11780

In [80]: df.close.diff()
Out[80]:
0        NaN
1    0.00004
2    0.00018
3   -0.00024
4    0.00001
5    0.00024
6   -0.00013
7   -0.00003
Name: close, dtype: float64

这篇关于连续计数多次,总和的结果为正(或负)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-12 11:43