Python中如何计算DataFrame里全年每日的温度均值?
解决全年每日温度均值计算问题
核心思路
原方法仅基于现有数据中的日期分组,无法自动补充缺失日期。要得到全年每日均值,必须先构建目标年份的完整日期序列,再与原数据合并,最后计算均值。
具体实现步骤
- 转换日期列格式
确保Dates列为datetime类型,避免字符串格式导致的匹配异常:
import pandas as pd # 转换Dates列为datetime格式 df['Dates'] = pd.to_datetime(df['Dates'])
- 生成全年完整日期序列
以2019年为例,生成全年每一天的日期:
# 创建包含2019年所有日期的DataFrame full_dates = pd.date_range(start='2019-01-01', end='2019-12-31', freq='D') full_df = pd.DataFrame({'Dates': full_dates})
- 合并原数据与完整日期
通过左连接保留所有日期,原数据中无记录的日期对应的Temp会显示为NaN:
merged_df = pd.merge(full_df, df, on='Dates', how='left')
- 计算每日温度均值
按日期分组计算均值,缺失数据可根据需求填充:
daily_mean = merged_df.groupby('Dates', as_index=False)['Temp'].mean() # 可选:用线性插值填充缺失值(也可替换为0、前后均值等) daily_mean['Temp'] = daily_mean['Temp'].interpolate(method='linear')
结果说明
运行后daily_mean会包含2019年全年365天的日期及对应温度均值,原数据中无记录的日期会按你选择的方式处理(保留NaN、插值填充或固定值填充)。
内容的提问来源于stack exchange,提问作者toms
相关产品推荐
相关产品推荐

