如何将每小时气压CSV数据匹配到10分钟间隔水位CSV并新增对应列
实现方案
前置准备
- 安装pandas数据处理依赖:
pip install pandas
实现逻辑
- 读取两份CSV文件,自动处理字段前后多余空格
- 为两份数据构造统一的小时匹配键:
日期 + 时间值的前两位(例如1210、1250都归为12点的匹配键,对应同一份小时气压数据) - 基于小时匹配键做映射关联,给所有水位行匹配对应气压值
- 导出带气压列的新水位CSV文件
完整可运行代码
import pandas as pd # 1. 读取气压CSV并构造映射关系 pressure_df = pd.read_csv("你的气压文件路径.csv", skipinitialspace=True) # 构造小时维度匹配键 pressure_df["match_key"] = pressure_df["date"] + "_" + pressure_df["time"].astype(str).str[:2] # 转成字典用于后续快速匹配 pressure_map = dict(zip(pressure_df["match_key"], pressure_df["pressure"])) # 2. 读取水位CSV并匹配气压 water_df = pd.read_csv("你的水位文件路径.csv", skipinitialspace=True) # 构造相同规则的匹配键 water_df["match_key"] = water_df["date"] + "_" + water_df["time"].astype(str).str[:2] # 匹配对应气压值 water_df["pressure"] = water_df["match_key"].map(pressure_map) # 删除临时生成的匹配键列 water_df = water_df.drop(columns=["match_key"]) # 3. 导出结果文件 water_df.to_csv("带气压的水位数据.csv", index=False, encoding="utf-8-sig")
补充说明
- 如果存在某小时气压数据缺失的情况,可在匹配后增加填充逻辑,比如调用
water_df["pressure"] = water_df["pressure"].interpolate()做线性插值补全 - 后续做气压补偿校正时,直接在导出前对water_df加计算逻辑即可,示例:
water_df["corrected_depth"] = water_df["depth"] + (1013.25 - water_df["pressure"]) * 补偿系数,补偿系数根据你的业务规则调整即可 - 该方案支持百万行级数据秒级处理,完全满足数月10分钟间隔数据的处理需求
内容的提问来源于stack exchange,提问作者Wolffetti
相关产品推荐
相关产品推荐

