Ваш вопрос не очень понятен, но если вам просто нужно подсчитать количество вхождений, вы можете попробовать что-то вроде этого:
#generate a dataframe
df = pd.DataFrame(np.array([[1, 2, 3], [4, 5, 4], [7, 8, 9], [1, 5, 2], [7, 9, 9]]),columns=['a', 'b', 'c'])
#Flatten the array
df_flat=df.stack().reset_index(drop=True)
#Count the number of occurences
df_flat.groupby(df_flat).size()
Это ввод:
a b c
0 1 2 3
1 4 5 4
2 7 8 9
3 1 5 2
4 7 9 9
И это вывод:
1 2
2 2
3 1
4 2
5 2
7 2
8 1
9 3
Если вы хотите вместо этого разделить на несколько предопределенных интервалов, вы можете использовать pd.cut
вместе с groupby
:
#define intervals
intervals = pd.IntervalIndex.from_arrays([0,3,6],[3,6,9],closed='right')
#cut and groupby
df_flat.groupby(pd.cut(df_flat,intervals)).size()
, и результат будетбыть:
(0, 3] 5
(3, 6] 4
(6, 9] 6