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

Excel统计温度低于-15℃的独立天数(每日48条半小时数据)

统计温度低于-15℃的天数(单日多次记录仅计1天)

嘿,这个需求我之前处理过类似的,核心就是把同一天内的多次低温记录合并成一天统计,不用纠结当天到底触发了多少次。下面给你拆解具体思路,附示例数据和常用的实现方式:

核心解决步骤

  • 提取日期维度:从每条记录的时间戳里单独拆分出日期部分(比如把2024-01-01 00:30:00转换成2024-01-01),这是按天分组的基础。
  • 分组筛选验证:对每个日期组,检查该组内是否存在至少一条温度≤-15℃的记录。只要有一条满足,这个日期就算入统计。
  • 统计符合条件的日期数:把所有满足“当日有低温记录”的日期数量加总,就是最终结果。

示例数据

假设我们有如下每半小时采集的温度数据:

timestamp,temperature
2024-01-01 00:00:00,-14.2
2024-01-01 00:30:00,-15.1
2024-01-01 01:00:00,-16.3
2024-01-02 00:00:00,-13.8
2024-01-02 00:30:00,-14.5
2024-01-03 02:00:00,-15.5
2024-01-03 02:30:00,-14.9

在这个例子里,1月1日和1月3日都出现了低于-15℃的记录,所以最终统计结果是2天。

常用实现方式

方式1:Python + Pandas(适合本地数据处理)

Pandas对时间序列数据的处理非常便捷,代码逻辑清晰:

import pandas as pd

# 加载数据(实际场景可从CSV/Excel读取)
temp_data = pd.DataFrame({
    'timestamp': ['2024-01-01 00:00:00', '2024-01-01 00:30:00', '2024-01-01 01:00:00',
                  '2024-01-02 00:00:00', '2024-01-02 00:30:00',
                  '2024-01-03 02:00:00', '2024-01-03 02:30:00'],
    'temperature': [-14.2, -15.1, -16.3, -13.8, -14.5, -15.5, -14.9]
})

# 转换时间格式并提取日期
temp_data['date'] = pd.to_datetime(temp_data['timestamp']).dt.date

# 按日期分组,检查每组是否有低温记录,统计符合条件的天数
cold_day_count = temp_data.groupby('date')['temperature'].apply(lambda x: any(x <= -15)).sum()

print(f"温度低于-15℃的天数:{cold_day_count}")
# 输出结果:温度低于-15℃的天数:2

方式2:SQL(适合数据库存储的数据)

如果数据存在数据库中,直接用SQL查询更高效:

SELECT COUNT(DISTINCT DATE(timestamp)) AS cold_days
FROM temperature_records
WHERE temperature <= -15;

这里DATE(timestamp)用于提取日期部分,DISTINCT会自动去重同一天的多条记录,直接统计出符合条件的日期总数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 06:29:18