Pandas DataFrame 按时间戳分组

Posted

技术标签:

【中文标题】Pandas DataFrame 按时间戳分组【英文标题】:Pandas DataFrame grouping by Timestamp 【发布时间】:2018-09-04 03:48:45 【问题描述】:

我有一个用例:

数据的格式为:Col1、Col2、Col3 和时间戳

现在,我只想获取行数与时间戳箱数。

即对于每半小时的存储桶(即使是没有相应行的存储桶),我需要计算有多少行。

时间戳分布在一年的时间里,所以我不能把它分成 24 个桶。

我必须每隔 30 分钟将它们装箱。

【问题讨论】:

【参考方案1】:

groupby 通过pd.Grouper

# optionally, if needed
# df['Timestamp'] = pd.to_datetime(df['Timestamp'], errors='coerce')  
df.groupby(pd.Grouper(key='Timestamp', freq='30min')).count()

resample

df.set_index('Timestamp').resample('30min').count()

【讨论】:

@COLDSPEED 非常感谢!有用! errors=coerce 有什么作用?还有一个问题:resample 是否对所有行进行采样? @davidnadal 它将无效的日期时间字符串转换为 NaT(而不是引发解析器错误)。 Resample 将对所有行进行采样。

以上是关于Pandas DataFrame 按时间戳分组的主要内容,如果未能解决你的问题,请参考以下文章

按日期对 Pandas DataFrame 进行分组

如何使用带有 Pandas 的时间戳按小时对数据帧进行分组

按 10 分钟间隔对 pandas DataFrame 进行分组[重复]

在 Pandas Dataframe 上按分组并使用 APPLY 和 MAX 操作 [重复]

将字典嵌套在另一个字典中,按 Pandas Dataframe 中的值分组

Python - 按时间间隔分组的时间加权平均 Pandas