仅 pandas 日期时间列的时间分量平均值

2024-04-14

我有一个 pandas 数据框,其中有一列日期时间。我需要找到该列的平均时间,无论日期如何。例如,如果我有

dte
----
2018-02-20 20:30:00
2018-09-03 20:30:00
2017-05-18 21:00:00
2014-11-26 21:00:00

我期望的结果是

20:45:00

我尝试简单地获取数据时间对象的时间部分并对它们进行平均,a la

df['tm'].dt.time.mean()

但它给了我以下错误:

TypeError: unsupported operand type(s) for +: 'datetime.time' and 'datetime.time'

一种方法是扣除归一化datetime然后计算平均值timedelta series.

df = pd.DataFrame({'datetime': ['2018-02-20 20:30:00', '2018-09-03 20:30:00',
                                '2017-05-18 21:00:00', '2014-11-26 21:00:00']})

# convert to datetime
df['datetime'] = pd.to_datetime(df['datetime'])

# take difference to normalized datetime
df['time'] = df['datetime'] - df['datetime'].dt.normalize()

# calculate mean and format
res = str(df['time'].mean())[-8:]

print(res)

'20:45:00'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

仅 pandas 日期时间列的时间分量平均值 的相关文章

随机推荐