You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按经纬度分组计算PM均值并保留坐标信息?

按经纬度分组计算PM均值的实现方法

你可以通过 pandas 的 groupby 方法,按**纬度(latitude)和经度(longitude)**组合分组,再对每组的 PM 列计算均值,最后重置索引保留坐标列即可。

具体代码实现

针对你的示例数据,执行以下代码:

import pandas as pd

# 示例数据
df = pd.DataFrame({
    'date': ['01-01-2015 00:00:00', '01-01-2015 03:00:00', '02-01-2015 00:00:00', '02-01-2015 03:00:00', '10-01-2015 00:00:00'], 
    'latitude': [-55.0, -55.0, -52.0, -52.0, -43.0],
    'longitude': [-18.5, -18.5, -21.5, -21.5, -26.0],
    'PM': [10, 20, 20, 30, 35]
})

# 按经纬度分组计算PM均值
result_df = df.groupby(['latitude', 'longitude'])['PM'].mean().reset_index()

print(result_df)

代码说明

  • groupby(['latitude', 'longitude']):将数据按唯一的经纬度坐标对分组,确保同一坐标下的所有时间序列数据被归为一组
  • ['PM'].mean():仅对分组后的 PM 列计算均值,避免其他列被干扰
  • reset_index():将分组时作为索引的经纬度转换为普通列,最终得到包含坐标和对应 PM 均值的结构化 DataFrame

运行结果

执行后会输出符合预期的结果:

latitude  longitude    PM
0     -55.0      -18.5  15.0
1     -52.0      -21.5  25.0
2     -43.0      -26.0  35.0

扩展(可选)

如果需要同时计算多个统计量(比如计数、标准差),可以使用 agg 方法:

result_df = df.groupby(['latitude', 'longitude']).agg(
    PM_mean=('PM', 'mean'),
    PM_count=('PM', 'count'),
    PM_std=('PM', 'std')
).reset_index()

内容的提问来源于stack exchange,提问作者Daniel M M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 23:51:08