gpt4 book ai didi

python - 使用 Pandas 计算 TimeField 小时/分钟总和

转载 作者:行者123 更新时间:2023-12-01 01:09:59 41 4
gpt4 key购买 nike

我正在尝试使用 Pandas 来总结一系列的时间(小时,分钟)。数据来自 TimeField

class PhoneRecord ( models.Model ):
et = models.TimeField ( null=True, blank=True )

在 python 中,我获取记录并转换为数据帧。

phone = PhoneRecord.objects.all()

df = read_frame ( phone )

df.et = df.et.fillna ( '00:00:00' ) # some records are blank

df [ "time" ] = pd.to_datetime(df.et, format = '%H:%M:%S', errors = 'coerce')

这给了我以下输出。

0      00:00:35
1 00:00:29
2 00:00:00
3 00:00:00
4 00:00:37
......

当我尝试求和时

df.time.sum ()

我收到如下错误:+ 的操作数类型不受支持:'datetime.time' 和 'datetime.time'

我需要做什么才能对数据进行求和和平均。

谢谢。

最佳答案

您只需在此处运行自定义 1-liner,即可将 time 对象组合成 timedelta 对象,然后将它们相加。 (参见“打印”行)

from datetime import datetime, timedelta
import pandas as pd

phone = PhoneRecord.objects.all()
df = pd.DataFrame(list([i.__dict__ for i in phone])) # create pd.df from model query
df.et = df.et.fillna('00:00:00') # some records are blank
print(df.et)
print("SUM:", sum([datetime.combine(datetime.min, time) - datetime.min for time in df.et.tolist()], timedelta()))

你应该得到这样的东西:

0    00:00:20
1 00:00:20
2 00:00:50
3 00:00:30
4 00:00:20

SUM: 0:02:20

我必须做一些改变才能让它们在我这边工作,所以希望你和你的 Pandas 和 Django 版本也是如此。希望这有帮助!

关于python - 使用 Pandas 计算 TimeField 小时/分钟总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54955174/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com