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

如何在Pandas中仅对指定列按小时统计指定日期数据

按小时统计指定日期的指定列数据解决方案

没问题,我来帮你实现按小时展示指定日期的指定列统计数据的需求,一步步来:

1. 先确保日期列是时间索引

首先得把你的date列转换成pandas的datetime类型,并且设置为DataFrame的索引,这样resample才能正常工作:

import pandas as pd

# 你的原始数据
data = {
    'date': ['2018-02-11 04:05:33.438948+05:30', '2018-02-11 04:05:37.905242+05:30',
             '2018-02-11 17:09:47.211344+05:30', '2018-02-11 17:10:13.553385+05:30'],
    'location': ['DEL', 'MUM', 'DEL', 'KOL'],
    'cpu': [44, 0, 24, 23],
    'mem': [23, 23, 34, 35],
    'drops': [5.00, 6.08, 4.19, 4.47],
    'upload': [14.5, 5.1, 19.4, 11.5],
    'download': [44.51, 0.00, 37.53, 46.34]
}
df = pd.DataFrame(data)

# 转换日期列并设置为索引
df['date'] = pd.to_datetime(df['date'])
df = df.set_index('date')

2. 过滤指定日期的数据

假设你要统计2018-02-11这一天的数据,用下面的代码过滤:

target_date = '2018-02-11'
# 筛选出目标日期的所有行
filtered_df = df[df.index.date == pd.to_datetime(target_date).date()]

3. 选择需要统计的部分列

比如你只想统计cpu、mem、drops这三列,就先筛选出这些列:

# 指定要统计的列
selected_columns = ['cpu', 'mem', 'drops']
filtered_df = filtered_df[selected_columns]

4. 按小时重采样并聚合统计值

用resample('H')按小时分组,然后用agg指定要计算的统计量(均值、最小值、最大值):

# 按小时聚合,计算mean、min、max
hourly_stats = filtered_df.resample('H').agg(['mean', 'min', 'max'])

运行结果示例

执行完上面的代码后,hourly_stats会输出如下结果:

cpu        mem        drops          
                    mean min max mean min max   mean   min   max
date                                                           
2018-02-11 04:00:00  22.0   0  44  23.0  23  23  5.540  5.00  6.08
2018-02-11 17:00:00  23.5  23  24  34.5  34  35  4.330  4.19  4.47

额外提示

  • 如果你的日期列已经是datetime类型的索引,可以跳过第一步的转换
  • 要是需要统计其他列,只需要修改selected_columns列表即可
  • 除了mean、min、max,你还可以添加其他聚合函数,比如sum、median等

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:06:49