当前位置: 首页 > article >正文

用Python和Pandas玩转全球地震数据:从数据清洗到可视化分析的保姆级教程

用Python和Pandas玩转全球地震数据从数据清洗到可视化分析的保姆级教程地震数据蕴含着地球活动的密码而Python则是解开这些密码的瑞士军刀。当全球地震数据遇上Pandas和可视化工具我们不仅能看见地震的分布规律更能洞察地质活动的深层联系。本教程将手把手带你完成从原始数据到专业分析的全流程即使你是刚接触数据分析的新手也能轻松掌握这套方法。1. 环境准备与数据加载工欲善其事必先利其器。在开始分析前我们需要配置好Python环境并安装必要的库。推荐使用Anaconda创建独立环境避免与其他项目产生依赖冲突conda create -n earthquake python3.9 conda activate earthquake pip install pandas numpy matplotlib plotly folium seaborn假设我们已经获取到2023年全球地震数据集CSV格式首先用Pandas加载数据import pandas as pd # 加载原始数据 df pd.read_csv(global_earthquakes_2023.csv, parse_dates[time]) # 快速查看数据结构 print(f数据集包含 {df.shape[0]} 条记录{df.shape[1]} 个字段) df.info()常见的地震数据集通常包含以下核心字段字段名数据类型说明timedatetime地震发生时间latitudefloat震中纬度longitudefloat震中经度depthfloat震源深度(km)magfloat震级placestring地理位置描述提示遇到大型数据集时可以使用chunksize参数分块读取避免内存溢出2. 数据清洗与特征工程原始地震数据往往存在各种质量问题需要系统性地清洗才能用于分析。以下是典型的数据问题及解决方案2.1 处理缺失值与异常值# 检查缺失值 missing df.isnull().sum().sort_values(ascendingFalse) print(missing[missing 0]) # 处理策略 # - 关键字段如震级、坐标的缺失记录直接删除 # - 非关键字段如台站数量用中位数或特定值填充 df_clean df.dropna(subset[mag, latitude, longitude]) # 检测并处理异常值 q1 df_clean[mag].quantile(0.25) q3 df_clean[mag].quantile(0.75) iqr q3 - q1 df_clean df_clean[~((df_clean[mag] (q1 - 1.5*iqr)) | (df_clean[mag] (q3 1.5*iqr)))]2.2 时间特征提取地震活动具有明显的时间规律从时间戳中提取特征非常关键df_clean[hour] df_clean[time].dt.hour df_clean[day_of_week] df_clean[time].dt.dayofweek df_clean[month] df_clean[time].dt.month # 添加季节特征 def get_season(month): if month in [12,1,2]: return winter elif month in [3,4,5]: return spring elif month in [6,7,8]: return summer else: return autumn df_clean[season] df_clean[month].apply(get_season)2.3 空间特征增强地理位置信息可以衍生出更多分析维度# 计算板块边界距离需准备板块边界数据集 def distance_to_nearest_boundary(lat, lon): # 实现计算逻辑 return distance_km df_clean[boundary_distance] df_clean.apply( lambda x: distance_to_nearest_boundary(x[latitude], x[longitude]), axis1) # 添加区域标记 def get_region(lat): if lat 66.5: return Arctic elif lat 23.5: return Temperate elif lat -23.5: return Tropical elif lat -66.5: return Temperate else: return Antarctic df_clean[hemisphere] df_clean[latitude].apply( lambda x: Northern if x 0 else Southern) df_clean[climate_zone] df_clean[latitude].apply(get_region)3. 探索性数据分析(EDA)在正式建模前我们需要通过EDA了解数据的基本特征和潜在规律。3.1 统计分布分析import matplotlib.pyplot as plt import seaborn as sns # 设置可视化风格 plt.style.use(seaborn) sns.set_palette(husl) # 震级分布 plt.figure(figsize(10,6)) sns.histplot(df_clean[mag], bins30, kdeTrue) plt.title(Global Earthquake Magnitude Distribution 2023) plt.xlabel(Magnitude) plt.ylabel(Frequency) plt.show()关键统计量计算结果指标震级(mag)深度(depth)平均值4.768.2 km中位数4.555.1 km标准差0.842.3最小值2.52.1 km最大值8.2689.5 km3.2 时空分布特征使用Plotly创建交互式时空可视化import plotly.express as px fig px.scatter_geo(df_clean.sample(1000), latlatitude, lonlongitude, sizemag, colordepth, hover_nameplace, projectionnatural earth, title2023 Global Earthquakes Distribution) fig.show()时间序列分析揭示的地震活动规律每日地震频次呈现双峰分布UTC时间季节性变化在北半球夏季更为明显大型地震(M7.0)后常伴随余震集群4. 高级分析与可视化4.1 震级-深度关系建模from scipy.stats import pearsonr # 计算相关系数 corr, p_value pearsonr(df_clean[mag], df_clean[depth]) print(fPearson相关系数: {corr:.3f}, p值: {p_value:.4f}) # 创建联合分布图 g sns.jointplot(xdepth, ymag, datadf_clean, kindhex, gridsize30) g.ax_joint.set_xlabel(Depth (km)) g.ax_joint.set_ylabel(Magnitude) plt.suptitle(Magnitude vs Depth Distribution, y1.02)4.2 交互式地图可视化使用Folium创建带热力层的交互地图import folium from folium.plugins import HeatMap # 创建基础地图 m folium.Map(location[20, 0], zoom_start2) # 添加热力层 heat_data [[row[latitude],row[longitude],row[mag]] for index, row in df_clean.iterrows()] HeatMap(heat_data, radius10, blur15).add_to(m) # 添加板块边界图层 plate_boundaries folium.FeatureGroup(namePlate Boundaries) # 添加板块边界数据... plate_boundaries.add_to(m) # 添加图层控制 folium.LayerControl().add_to(m) m.save(earthquake_heatmap.html)4.3 时间序列预测使用Prophet进行地震活动预测from prophet import Prophet # 准备时间序列数据 ts_data df_clean.resample(D, ontime)[mag].count().reset_index() ts_data.columns [ds, y] # 训练预测模型 model Prophet(seasonality_modemultiplicative) model.fit(ts_data) # 创建未来30天的预测 future model.make_future_dataframe(periods30) forecast model.predict(future) # 可视化预测结果 fig model.plot(forecast) plt.title(Earthquake Frequency Forecast) plt.xlabel(Date) plt.ylabel(Daily Earthquake Count)5. 实战案例环太平洋地震带分析让我们聚焦著名的火环区域进行深入分析# 定义环太平洋区域坐标范围 pacific_ring ((-60, 60), (100, -70)) # 简化的经纬度范围 # 筛选数据 ring_df df_clean[ (df_clean[latitude].between(-60, 60)) ((df_clean[longitude] 100) | (df_clean[longitude] -70)) ] # 分析特征对比 ring_stats pd.DataFrame({ Global: df_clean[[mag, depth]].mean(), Pacific_Ring: ring_df[[mag, depth]].mean() }).T print(ring_stats)环太平洋区域与全球平均对比指标震级深度全球平均4.768.2 km环太平洋5.142.8 km关键发现该区域地震平均震级高出全球水平8.5%震源深度明显较浅与板块俯冲机制相关地震频次占全球总量的76%验证了火环的活跃性通过本教程我们不仅掌握了地震数据分析的技术流程更理解了如何从原始数据中提取有价值的地球科学洞见。在实际项目中这套方法可以灵活调整应用于不同地区、不同时间范围的地震研究。

相关文章:

用Python和Pandas玩转全球地震数据:从数据清洗到可视化分析的保姆级教程

用Python和Pandas玩转全球地震数据:从数据清洗到可视化分析的保姆级教程 地震数据蕴含着地球活动的密码,而Python则是解开这些密码的瑞士军刀。当全球地震数据遇上Pandas和可视化工具,我们不仅能看见地震的分布规律,更能洞察地质活…...

蓝桥杯软件类备赛,这本官方指南《程序设计竞赛专题挑战教程》到底值不值得买?

蓝桥杯软件类备赛指南深度评测:官方教程是否物有所值? 每年春季,数十万计算机专业学生都会面临同一个灵魂拷问:如何用最少的预算和最高效的方式备战蓝桥杯? 作为国内最具影响力的IT学科竞赛之一,蓝桥杯软件…...

基于springboot大学生房屋租赁系统设计与开发(源码+精品论文+答辩PPT等资料)

博主介绍:CSDN毕设辅导第一人、靠谱第一人、全网粉丝50W,csdn特邀作者、博客专家、腾讯云社区合作讲师、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交…...

别再只盯着GIS了!用Python+开源库,从零搭建一个S57电子海图解析器(附代码)

用Python解析S57电子海图:从数据解码到可视化实战 电子海图作为现代航海技术的核心组件,其数据解析能力已成为地理信息开发者的进阶技能。与通用GIS工具不同,S57格式的电子海图包含航海专用的物标分类、拓扑关系和属性编码体系。本文将带您用…...

基于springboot图书馆管理系统设计与开发(源码+精品论文+答辩PPT等资料)

博主介绍:CSDN毕设辅导第一人、靠谱第一人、全网粉丝50W,csdn特邀作者、博客专家、腾讯云社区合作讲师、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交…...

基于springboot苏应志愿服务管理系统设计与开发(源码+精品论文+答辩PPT等资料)

博主介绍:CSDN毕设辅导第一人、靠谱第一人、全网粉丝50W,csdn特邀作者、博客专家、腾讯云社区合作讲师、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交…...

告别格式混乱:3分钟掌握html-to-docx实现HTML到Word的完美转换

告别格式混乱:3分钟掌握html-to-docx实现HTML到Word的完美转换 【免费下载链接】html-to-docx HTML to DOCX converter 项目地址: https://gitcode.com/gh_mirrors/ht/html-to-docx 你是否曾经花费数小时将网页内容复制到Word文档中,却遭遇格式错…...

文墨共鸣实战落地:从需求分析、模型选型、UI设计到上线运维全链路

文墨共鸣实战落地:从需求分析、模型选型、UI设计到上线运维全链路 1. 项目背景与需求分析 在当今信息爆炸的时代,如何快速准确地判断两段文字之间的语义相似度,成为了许多应用场景的核心需求。无论是内容去重、智能检索,还是文本…...

半导体工艺中的silicide技术:从polycide到salicide的演进与选择

半导体工艺中的硅化物技术:从Polycide到Salicide的深度解析 在集成电路制造领域,金属硅化物技术一直是提升器件性能的关键工艺之一。随着工艺节点的不断缩小,传统的多晶硅栅极和源漏接触电阻问题日益突出,这直接推动了从Polycide到…...

HEC RAS河道断面数据到CAD图纸的自动化转换:批量生成DXF格式工程图

1. 为什么需要自动化转换河道断面数据 作为一名水利工程师,我经常遇到这样的场景:在HEC RAS中完成了河道水动力模拟后,需要将断面数据导出到CAD中进行进一步处理和出图。传统的手动操作方式不仅效率低下,还容易出错。每次导出几十…...

Flink DataStreamAPI实战指南——从环境搭建到WordCount(Java/Scala双语言版)

1. 环境准备:双语言开发环境搭建 第一次接触Flink时,最让人头疼的就是环境配置。记得2018年我刚从Hadoop转向Flink时,光环境搭建就折腾了两天。现在回想起来,其实只要掌握几个关键点,10分钟就能搞定一个可用的开发环境…...

Windows下用mitmweb抓包实战:从安装证书到过滤百度请求的完整流程

Windows下mitmweb抓包实战:从证书安装到精准流量过滤 引言 在Web开发和测试领域,流量监控与分析是不可或缺的技能。对于Windows平台用户而言,寻找一款高效、易用的抓包工具往往面临诸多挑战。mitmproxy作为业界知名的中间人代理工具&#x…...

AIVideo视频水印技术:基于神经网络的隐形水印方案

AIVideo视频水印技术:基于神经网络的隐形水印方案 1. 引言 视频内容保护一直是创作者们头疼的问题。传统的可见水印影响观看体验,而简单的隐形水印又容易被去除。今天要介绍的AIVideo基于神经网络开发的隐形水印技术,可以说是给视频版权保护…...

Dify前端DIY指南:从修改样式到Docker部署的完整避坑手册

Dify前端DIY指南:从修改样式到Docker部署的完整避坑手册 当你需要为企业内部系统打造独特的品牌界面,或是为教学演示环境定制专属交互体验时,Dify的前端定制能力就显得尤为重要。不同于简单的主题切换,深度定制Dify前端需要掌握从…...

别再手动写CRUD了!用RuoYi代码生成器5分钟搞定MinIO素材管理模块

5分钟极速构建MinIO素材管理系统:RuoYi代码生成器实战指南 每次接到"三天内上线内容管理后台"的需求时,你是否还在重复着建表→写Controller→写Service→调试接口的机械劳动?作为经历过十几个企业级内容平台开发的架构师&#xff…...

Linux下Synopsys2020安装全攻略:从SCL配置到License生成避坑指南

Linux下Synopsys工具链部署实战:从权限管理到License优化的全流程解析 在芯片设计领域,Synopsys工具链的稳定运行直接关系到研发效率。不同于简单的软件安装,EDA工具的部署涉及复杂的权限管理、环境配置和License验证体系。本文将基于真实服务…...

LeetCode 3643.子矩阵垂直翻转算法解析

LeetCode 3643.子矩阵垂直翻转算法解析 题目描述 给定一个二维矩阵 grid 和四个参数 (x, y, k),实现一个函数,将矩阵中以 (x, y) 为左上角、边长为 k 的正方形子矩阵进行上下翻转(垂直镜像翻转)。 算法思路 本题的核心是实现子矩阵…...

Ollama+granite-4.0-h-350m:开源轻量模型在学生编程作业辅导中的应用

Ollamagranite-4.0-h-350m:开源轻量模型在学生编程作业辅导中的应用 1. 为什么需要轻量级编程辅导助手? 作为一名计算机专业的学生,我经常遇到这样的困境:深夜调试代码时遇到问题,找不到人请教;想要理解一…...

基于Ubuntu 24.04与Zabbix 7.0构建云服务器监控体系

1. 环境准备与基础配置 在阿里云ECS上部署Zabbix监控系统前,需要做好充分的环境准备。我建议选择4核8G配置的实例作为Zabbix Server主机,这个配置可以轻松应对中小规模集群的监控需求。实测下来,100G的系统盘空间完全够用,还能保留…...

2024年还用Windows XP?VMware17虚拟化实战:从系统封装到快照管理

2024年企业级Windows XP虚拟化实战:VMware17高级运维指南 在工业控制、金融终端等关键领域,仍有大量关键业务系统依赖Windows XP环境运行。根据行业调研数据显示,全球范围内仍有约3%的企业设备运行这一经典系统,其中银行ATM机和数…...

HY-Motion 1.0参数怎么调?采样步数、动作时长设置全解析

HY-Motion 1.0参数怎么调?采样步数、动作时长设置全解析 [【免费上手链接】HY-Motion 1.0 腾讯混元3D数字人团队开源动作生成模型,十亿参数级文生动作系统,支持一键可视化操作,让文字自然转化为电影级3D律动 镜像地址&#xff1…...

DeepSeek-R1-Distill-Qwen-7B数学推理能力实测:AIME竞赛题解题分析

DeepSeek-R1-Distill-Qwen-7B数学推理能力实测:AIME竞赛题解题分析 1. 引言 如果你关注过最近的大模型进展,应该听说过DeepSeek-R1这个名字。这个系列模型在数学推理能力上表现相当亮眼,特别是那个671B参数的版本,在AIME竞赛题上…...

RevokeMsgPatcher完整指南:让微信/QQ/TIM消息不再消失的终极方案

RevokeMsgPatcher完整指南:让微信/QQ/TIM消息不再消失的终极方案 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了) 项目地址: https://…...

PSpice AD仿真避坑指南:为什么你的新器件模型导入后无法运行?

PSpice AD仿真避坑指南:为什么你的新器件模型导入后无法运行? 作为一名长期使用PSpice AD进行电路仿真的工程师,我深知导入新器件模型时可能遇到的各种"坑"。本文将结合我的实战经验,系统梳理7个最常见的问题根源及对应…...

SparkFun MicroPressure库解析:MPR微压传感器嵌入式驱动设计

1. SparkFun MicroPressure 库深度解析:Honeywell MPR 系列微压传感器的嵌入式驱动实现1.1 库定位与工程价值SparkFun MicroPressure Library 是一个专为 Honeywell MPR 系列微压传感器(MPR121、MPR031、MPR032 等)设计的轻量级嵌入式 C/C 驱…...

2026程序员破局指南:大模型技能是未来,收藏这份转型路线图

引言 曾几何时,程序员被誉为“21世纪最高薪的职业之一”,是无数人向往的“金饭碗”。然而,步入2026年,这个曾经风光无限的职业似乎正经历一场前所未有的“寒冬”。裁员潮、降薪、AI冲击……种种挑战接踵而至,让许多程…...

避坑指南:SAP供应商付款时F-51的这两种清账方式千万别乱选

SAP供应商付款清账实战避坑:F-51操作中的关键决策逻辑 刚接手SAP财务模块的新人,往往会在供应商付款环节踩坑——尤其是面对F-51事务码中的部分清账与剩余清账选项时。这两个看似简单的功能选择,实际上会直接影响后续对账效率、账龄分析准确性…...

DAMOYOLO-S快速部署:7860端口Web服务访问与HTTPS反向代理配置

DAMOYOLO-S快速部署:7860端口Web服务访问与HTTPS反向代理配置 你是不是也想快速搭建一个属于自己的目标检测服务,但被复杂的模型部署和环境配置劝退?今天,我们就来聊聊如何一键部署DAMOYOLO-S这个高性能的通用检测模型&#xff0…...

Windows10下ENSP云服务配置:解决以太网卡缺失的3种实用方法

Windows 10环境下ENSP云服务配置:全面解决以太网卡缺失问题 在数字化转型浪潮中,网络工程师和IT专业人员经常需要借助仿真工具进行网络拓扑设计和测试。华为ENSP作为业界广泛使用的网络模拟平台,其云服务功能对物理网卡的依赖却让许多使用轻薄…...

VibeVoice实时语音合成系统效果测评:流式播放与长文本支持实测

VibeVoice实时语音合成系统效果测评:流式播放与长文本支持实测 1. 测试环境与准备 1.1 硬件配置 本次测试使用的硬件平台为: GPU:NVIDIA RTX 4090(24GB显存)CPU:AMD Ryzen 9 7950X内存:64GB…...