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

如何用Pandas按日期、区域、事件等级筛选计算平均速度?

解决方案

核心步骤说明

问题大概率出在日期列未正确转换为datetime类型,或是条件筛选的逻辑组合有误,按以下步骤操作即可得到正确结果:

  1. 先将Date列转为datetime格式
    原始数据里的Date是字符串格式,直接按年份筛选会失效,必须先做类型转换:
import pandas as pd

# 读取你的数据(根据实际数据源调整,比如read_excel)
df = pd.read_csv('your_data_file.csv')
# 转换Date列为datetime类型
df['Date'] = pd.to_datetime(df['Date'])
  1. 多重条件筛选+计算均值
    同时匹配三个条件:年份为2017、Area等于Reet、Incidents等于M,然后提取Speed列计算平均值:
# 组合筛选条件
filter_mask = (df['Date'].dt.year == 2017) & (df['Area'] == 'Reet') & (df['Incidents'] == 'M')
# 计算目标平均值
target_avg = df.loc[filter_mask, 'Speed'].mean()

# 按预期格式输出结果(保留两位小数)
print(round(target_avg, 2))

之前方法失效的可能原因

  • 未转换Date列类型:直接用字符串匹配年份容易因格式差异出错,dt.year也无法在字符串列上生效;
  • date_range或set_index的用法有误:这类方法更适合时间序列的切片,不如直接用布尔掩码的方式直观,容易出现条件对齐错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 14:45:32