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

在R语言中按日期站点分组将物种列表长转宽并求温度均值

解决方案:Pandas 实现分组均值计算 + 宽格式转换

情况1:原始数据为长格式(变量名单独一列)

假设你的原始数据结构示例:

datesitevariablevalue
2023-01-01Atemperature22.5
2023-01-01Acloud_cover0.3
2023-01-01Btemperature20.1
2023-01-02Atemperature23.0

代码实现

import pandas as pd

# 读取数据(替换为你的实际数据路径)
df = pd.read_csv("your_data.csv")

# 按日期、站点、变量分组计算均值
grouped_mean = df.groupby(["date", "site", "variable"])["value"].mean().reset_index()

# 转换为宽格式:变量名作为列,对应均值为单元格值
wide_df = grouped_mean.pivot(index=["date", "site"], columns="variable", values="value").reset_index()

# 清理列名(可选,移除自动生成的层级前缀)
wide_df.columns = wide_df.columns.str.replace(r"^variable_", "", regex=True)

# 查看最终结果
print(wide_df)

情况2:原始数据为长格式(变量已作为单独列)

如果你的原始数据已将温度、云量等设为独立列,示例:

datesitetemperaturecloud_cover
2023-01-01A22.50.3
2023-01-01A22.80.25
2023-01-01B20.10.5
2023-01-02A23.00.4

代码实现

import pandas as pd

df = pd.read_csv("your_data.csv")

# 直接按日期+站点分组,对所有数值列计算均值
wide_df = df.groupby(["date", "site"]).mean().reset_index()

# 查看最终结果
print(wide_df)

关键说明

  • groupby(["date", "site"]):核心分组逻辑,确保每组对应同一日期+同一站点的数据集
  • 若只需计算指定变量的均值,可替换为agg({"temperature": "mean", "cloud_cover": "mean"})精准指定
  • pivot():完成长格式到宽格式的转换,自动将变量名映射为列名

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 17:25:25