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

如何用Python按日期分组计算DataFrame中温度列的均值/中位数?

按日期分组计算温度均值与中位数的解决方案

前提准备

确保已导入所需库:

import pandas as pd
import numpy as np

步骤1:标准化日期列格式

如果日期列是字符串类型,先转换为datetime格式,否则无法按日期正确分组:

# 假设DataFrame名为df,日期列名为"测量日期",温度列名为"温度"
df["测量日期"] = pd.to_datetime(df["测量日期"])

步骤2:按日期分组并计算统计量

两种常用分组方式任选其一:

  • 方式一:提取纯日期对象分组
    分组后索引为date类型的日期值:

    daily_stats = df.groupby(df["测量日期"].dt.date)["温度"].agg(["mean", "median"])
    
  • 方式二:保留datetime格式的日期分组
    将时间戳向下取整到当天,索引仍为datetime类型,方便后续时间操作:

    daily_stats = df.groupby(df["测量日期"].dt.floor("D"))["温度"].agg(["mean", "median"])
    

步骤3:整理输出结果

把日期从索引转为普通列,并修改列名让结果更直观:

daily_stats = daily_stats.reset_index()
daily_stats.columns = ["测量日期", "日均温度", "温度中位数"]
# 打印结果或导出为文件
print(daily_stats)
# 导出为CSV:daily_stats.to_csv("每日温度统计.csv", index=False)

模拟测试示例

若无真实数据,可生成7天每分钟的模拟数据集验证:

# 生成时间范围:2024-01-01 00:00到2024-01-07 23:59,每分钟一条
date_range = pd.date_range(start="2024-01-01", end="2024-01-07 23:59", freq="T")
# 生成15-30℃的随机温度数据
df = pd.DataFrame({
    "测量日期": date_range,
    "温度": np.random.randint(15, 31, size=len(date_range))
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 03:55:26