python一则关于计数统计的问题

如图,dataframe中有若干不规则小数,现需统计  <1且≥0的个数、<2且≥1的个数、<3且≥2的个数......以此类推,尝试过count函数,但能力有限无法解决。

>>> import pandas as pd
>>> import numpy as np
>>> data = np.random.random(10) * 3
>>> df = pd.DataFrame(data, columns=['CPT_DIFF_RE'])
>>> df
   CPT_DIFF_RE
0     0.565113
1     0.868314
2     1.861542
3     0.160432
4     2.819670
5     2.735544
6     1.438130
7     2.063184
8     2.509268
9     1.616769
>>> df_1 = df[(df['CPT_DIFF_RE']>=0)&(df['CPT_DIFF_RE']<1)]
>>> df_2 = df[(df['CPT_DIFF_RE']>=1)&(df['CPT_DIFF_RE']<2)]
>>> df_3 = df[(df['CPT_DIFF_RE']>=2)&(df['CPT_DIFF_RE']<3)]
>>> df_1.size, df_2.size, df_3.size
(3, 3, 4)
>>> df_1
   CPT_DIFF_RE
0     0.565113
1     0.868314
3     0.160432
>>> df_2
   CPT_DIFF_RE
2     1.861542
6     1.438130
9     1.616769
>>> df_3
   CPT_DIFF_RE
4     2.819670
5     2.735544
7     2.063184
8     2.509268

 

思路:直接取个位判断,个位是0 的就满足<1且≥0,个位是1 的就满足<2且≥1,以此类推~

用pd.cut()对数据进行离散化, 然后计数就可以

data['CPT_DIFF_RE'] = pd.cut(data['CPT_DIFF_RE'],[0,1,2,3],right=False)
data['CPT_DIFF_RE'].value_counts()