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

如何用Pandas规范化并按震级分组爬取的政府地震数据

地震数据按震级分组实现方案

我们可以新增一个分组函数,将地震数据按指定震级标准归类,直接整合到现有采集程序中。以下是完整实现代码:

import json
import urllib.request

# 采集地震数据
handle = urllib.request.urlopen("https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/4.5_month.geojson")
rawdata = handle.read()
data = json.loads(rawdata)

def get_earthquake_magnitude(json_data):
    results = []
    for eq in json_data['features']:
        mag = eq['properties']['mag']
        results.append(mag)
    return results

def group_earthquakes_by_magnitude(json_data):
    # 初始化分组容器,每个组存储对应地震的完整数据
    groups = {
        "轻度": [],
        "中度": [],
        "重大": [],
        "强烈": []
    }
    
    for eq in json_data['features']:
        mag = eq['properties']['mag']
        # 处理可能的空值情况
        if mag is None:
            continue
        # 根据震级判断分组
        if 4.5 <= mag <= 4.9:
            groups["轻度"].append(eq)
        elif 5 <= mag <= 5.9:
            groups["中度"].append(eq)
        elif 6 <= mag <= 6.9:
            groups["重大"].append(eq)
        elif mag >= 7:
            groups["强烈"].append(eq)
    
    return groups

# 调用示例:获取分组后的数据
grouped_data = group_earthquakes_by_magnitude(data)

# 按需输出每个组的地震数量或详情
print(f"轻度地震数量: {len(grouped_data['轻度'])}")
print(f"中度地震数量: {len(grouped_data['中度'])}")
print(f"重大地震数量: {len(grouped_data['重大'])}")
print(f"强烈地震数量: {len(grouped_data['强烈'])}")

代码说明

  • group_earthquakes_by_magnitude 函数负责核心分组逻辑:
    • 创建对应四个级别的字典,用于存储每个组的地震完整数据(若仅需震级,可修改为存储mag而非eq)
    • 遍历所有地震条目,提取震级后按区间判断归属
    • 增加震级空值处理,避免程序报错
  • 整合后可直接调用分组函数,获取结构化的分组结果,方便后续展示或分析

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 12:05:33