如图,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()