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 按时间戳分组的主要内容,如果未能解决你的问题,请参考以下文章
按 10 分钟间隔对 pandas DataFrame 进行分组[重复]
在 Pandas Dataframe 上按分组并使用 APPLY 和 MAX 操作 [重复]