如何用Pandas对DataFrame按timestamp分组并统计success为True的次数?
Pandas按时间戳分组统计成功次数解决方案
核心实现方案
由于Pandas中布尔值True等价于1,False等价于0,直接对分组后的success列求和即可得到每组中成功的次数:
# 按timestamp分组并统计success=True的次数 result_df = df.groupby('timestamp')['success'].sum().reset_index()
代码说明
groupby('timestamp'):以timestamp列为分组依据,将相同时间戳的行归为一组['success'].sum():对每个分组内的success列求和,自动完成True/False到1/0的转换,结果即为该时间戳下成功的次数reset_index():将分组后的索引(timestamp)转换为普通列,生成结构规整的DataFrame
自定义列名(可选)
如果需要将求和后的列名改为更直观的名称(比如success_count),可以使用reset_index的name参数:
result_df = df.groupby('timestamp')['success'].sum().reset_index(name='success_count')
示例验证
假设原始DataFrame如下:
import pandas as pd data = { 'id': [1,2,3,4,5], 'timestamp': [1620000000, 1620000000, 1620000300, 1620000300, 1620000300], 'success': [True, False, True, True, False] } df = pd.DataFrame(data)
执行代码后得到的结果:
| timestamp | success_count |
|---|---|
| 1620000000 | 1 |
| 1620000300 | 2 |
内容的提问来源于stack exchange,提问作者Leonardo
相关产品推荐
相关产品推荐

