python - Pandas - 如何使用 pandas / numpy 在数据框 / 列中求和时间
问题描述
df 与 HH:MM:SS 中的时间列
Input:
Time
10:00:00
10:00:00
10:00:00
10:00:00
当我尝试求和时,输出是
1 day 16:00:00
我需要这样的地方
Output:
Time
40:00:00
解决方案
我通过以下方式创建了您的系列:
s = pd.Series([pd.Timedelta('10:00:00')] * 4)
所以它的完整打印输出是:
0 10:00:00
1 10:00:00
2 10:00:00
3 10:00:00
dtype: timedelta64[ns]
问题是s.sum()默认格式化为Timedelta('1 days 16:00:00')
,因此要按照自己的方式格式化,请编写以下函数:
def tdFormat(td):
nn = td.seconds
secs = int(nn % 60)
nn = nn // 60
mins = int(nn % 60)
nn = nn // 60 + td.days * 24
return f'{nn:02d}:{mins:02d}:{secs:02d}'
并将总和生成为:
tdFormat(s.sum())
结果是:
'40:00:00'
推荐阅读
- python - 将python模块导入另一个目录
- matlab - 如何计算具有随机正态分布 X 的函数的期望值?
- virtualbox - 虚拟机中是否可以完全使用显卡?
- crash - AKAppleSampler loadSoundFont 无法识别的选择器
- python - django - 只预取最新的记录?
- azure - 发布大量 JSON 时 ASP NET 核心 API 超时
- html - 为什么我的网格项目不跨越多行?
- web - 创建具有相同列或一个主表的数据库表
- reactjs - 使用 d3 v3 而不是 d3 v4 react js
- turing-machines - 图灵机擦除其输入