如何在Pandas中基于分钟级时间匹配计算两气象站点的温度差值
没问题,这个需求完全可以实现,我来给你一步步拆解怎么做:
核心思路
我们的目标是把同一分钟内两个站点的温度关联起来,然后计算差值。核心就是先把时间戳统一到分钟级别,再把数据转成方便对比的格式。
步骤1:把时间戳转成分钟精度
首先得确保你的Time列是Pandas的datetime类型,然后把所有时间戳向下取整到分钟——这样不管秒数是多少,同一分钟的记录都会被归到同一个时间点。
import pandas as pd # 假设你的数据集叫df df['Time_minute'] = pd.to_datetime(df['Time']).dt.floor('min')
步骤2:把数据转成“宽格式”
用pivot方法把长格式的数据转成宽格式,这样每个分钟对应的station_a和station_b温度会在同一行,直接就能做减法了。
df_wide = df.pivot(index='Time_minute', columns='Station_name', values='Temperature')
转完之后的结构大概是这样:
| Time_minute | station_a | station_b |
|---|---|---|
| 2022-05-12 22:09:00+00:00 | 18.3 | 18.0 |
步骤3:计算温度差值
现在直接新增一列,用station_a的温度减去station_b的就行。如果遇到某分钟只有一个站点的数据(虽然你说每10分钟测一次,这种情况可能不多),可以用fillna处理缺失值,比如填充0或者用前一分钟的差值:
df_wide['temp_diff'] = df_wide['station_a'] - df_wide['station_b'] # 可选:处理缺失值的方式 # df_wide['temp_diff'] = df_wide['temp_diff'].fillna(method='ffill') # 用前值填充 # df_wide['temp_diff'] = df_wide['temp_diff'].fillna(0) # 填充0
步骤4(可选):转回长格式
如果之后需要保持原来的长结构,可以把宽格式再转回去:
df_long = df_wide.reset_index().melt( id_vars=['Time_minute', 'temp_diff'], var_name='Station_name', value_name='Temperature' )
完整测试代码
我用你给的示例数据写了完整代码,你可以直接跑:
import pandas as pd # 你的示例数据 data = { 'Time': ['2022-05-12 22:09:35+00:00', '2022-05-12 22:09:42+00:00'], 'Station_name': ['station_a', 'station_b'], 'Temperature': [18.3, 18.0] } df = pd.DataFrame(data) # 步骤1:统一时间到分钟 df['Time_minute'] = pd.to_datetime(df['Time']).dt.floor('min') # 步骤2:转宽格式 df_wide = df.pivot(index='Time_minute', columns='Station_name', values='Temperature') # 步骤3:计算差值 df_wide['temp_diff'] = df_wide['station_a'] - df_wide['station_b'] print(df_wide)
运行后输出结果:
Station_name station_a station_b temp_diff Time_minute 2022-05-12 22:09:00+00:00 18.3 18.0 0.3
额外提示
- 如果同一分钟内某个站点有多条数据(比如重复测量),可以先按分钟和站点分组取均值/最大值,再转宽格式:
df_agg = df.groupby(['Time_minute', 'Station_name'])['Temperature'].mean().reset_index() df_wide = df_agg.pivot(index='Time_minute', columns='Station_name', values='Temperature')
- 要是遇到某分钟只有一个站点的数据,
temp_diff会是NaN,你可以根据业务需求选择删除这些行、填充0或者插值。
内容的提问来源于stack exchange,提问作者Vilerala
相关产品推荐
相关产品推荐

