我有大量的纬度和经度值,我想将它们组合在一起以便在热图中显示它们(在热图中ipyleaflet
似乎只允许 2000 个左右的点,这在使用大数据时也会更有效率) .
我实际上正在使用vaex
,但就其而言的答案pandas
也很好。
该pandas
pd.cut
函数在分箱方面似乎很有帮助,但是它会生成一个分类列 ( category
dtype
),它看起来像是分箱中所有值的列表。是否有某种方法可以将其更改为标识每个垃圾箱的增量数字(感谢 jezreal 的那部分答案)?我只需要一个 bin 编号,然后在纬度和经度列上groupby
的 bin 编号和平均值 ( )。mean
我还需要计算热图条目的强度。
例如:
dft = pd.DataFrame({
'latitude': [1.5, 0.5, 1.2, 0.9, 3],
'longitude': [3, 0.2, 2, 0.2, 1.1]
})
dft['bin'] = pd.cut(dft['latitude'], bins=3, labels=False).astype(str) + "_" + pd.cut(dft['longitude'], bins=3, labels=False).astype(str)
dft.groupby('bin').agg(['mean', 'count']).unstack()
Almost gives me the answer, but I think I want this output instead:
bin latitude_mean longitude_mean count
0_0 0.7 0.2 2
0_1 1.2 2.0 1
1_2 1.5 3.0 1
2_0 3.0 1.1 1
如果计数可以在 1 到 1000 之间标准化,将会很有帮助。
我如何使用行pandas
pd.cut
中的 bin 或其他东西groupby
,平均纬度和经度以及列中的(热图强度)计数?