我如何计算每个箱子中的点数?

how do I count the number of points in each bin?

我有一个带有 x,y 坐标的 pandas df,想知道如何计算每个 bin 中的点数。我知道您可以使用 plt.hist2d() 将其可视化,但我想制作某种 array/matrix 来保存每个 bin 的计数。

我使用以下方法对 x,y 坐标进行分箱: bins = (df // .1 * .1).round(1).stack().groupby(level=0).apply(tuple) 其中 df 是:

     x         y
-2.319059 -4.057801
1.514416 -2.325972
-2.642251 -1.004367
-1.486476 -2.535654
-0.844162 -3.078726
-2.376592 -1.471239
-3.139233  0.449457
:
etc

bins是:

0       (-2.4, -4.1)
1        (1.5, -2.4)
3       (-2.7, -1.1)
4       (-1.5, -2.6)
6       (-0.9, -3.1)
7       (-2.4, -1.5)
8        (-3.2, 0.4)
:
etc

我尝试使用以下方法创建一个空的 numpy 数组:

x_size = int(max(list(df['x'])))
y_size = int(max(list(df['y'])))
my_array = np.zeros((x_size+1,y_size+1), np.int16)

但我不确定如何将 bin 坐标与数组坐标相关联以便对它们进行计数..

只需groupby你的垃圾箱并使用GroupBy.count方法

bins.groupby(bins).count()