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

为相似经纬度的时间序列温度数据分配专属ID的技术需求

按经纬度为时间序列数据分配唯一ID并筛选记录

核心需求

给包含日期、经度、纬度、温度的时间序列数据中,相同/相似经纬度的记录分配同一个专属ID,并能提取出同一地理位置的所有时间记录。

实现方案(以Python pandas为例)

以下是针对需求的具体操作步骤:

1. 准备数据并导入库

先把数据加载到pandas DataFrame中:

import pandas as pd

# 模拟输入数据
data = {
    "Sr.": [1,2,3,4,5,6,7,8],
    "Date": ["1/1/1981","1/1/1981","1/1/1981","1/1/1981","2/1/1981","2/1/1981","2/1/1981","2/1/1981"],
    "Longitude": [79,78,77,76,79,78,77,76],
    "Latitude": [29.3,29.3,29.3,29.3,29.3,29.3,29.3,29.3],
    "Temp": [281,271,275,282,285,283,275,283]
}
df = pd.DataFrame(data)

2. 为经纬度组合分配唯一ID

  • 如果是完全匹配的经纬度,直接通过Longitude和Latitude的组合分组生成ID:
# 按经纬度分组,生成从1开始的连续ID
df["ID"] = df.groupby(["Longitude", "Latitude"]).ngroup() + 1
  • 如果是存在微小误差的相似经纬度(比如浮点精度问题),可以先对经纬度进行四舍五入,再分组:
# 先将经纬度四舍五入到指定小数位(比如1位),再分组生成ID
df["rounded_Lon"] = df["Longitude"].round(1)
df["rounded_Lat"] = df["Latitude"].round(1)
df["ID"] = df.groupby(["rounded_Lon", "rounded_Lat"]).ngroup() + 1
# 可选:删除临时列
df = df.drop(["rounded_Lon", "rounded_Lat"], axis=1)

3. 提取同一ID的所有记录

比如要提取ID为1的所有记录:

# 筛选ID=1的行
filtered_df = df[df["ID"] == 1]
print(filtered_df.to_string(index=False))

运行结果

执行上述代码后,输出和期望示例一致:

Sr.    Date  Longitude  Latitude  Temp  ID
  1 1/1/1981         79      29.3   281   1
  5 2/1/1981         79      29.3   285   1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 16:39:21