我有一个这样的数据框架:
A B
x 00:11:12
y 00:10:10
z 00:00:15
g 00:01:32
我希望能够简单地表示sum
列B
。然而df['B'].sum()
产生以下错误:
TypeError: unsupported operand type(s) for +: 'datetime.time' and 'datetime.time'
然后我尝试将这些值转换为timedelta,但我得到以下错误:
pd.to_timedelta(df["B"])
ValueError: Invalid type for timedelta scalar: <class 'datetime.time'>
任何想法我怎么能从我的数据框架的值求和?结果应该是简单的00:23:09。
您很接近,需要对字符串进行强制转换次数:
out = pd.to_timedelta(df["B"].astype(str)).sum()
print (out)
0 days 00:23:09
如果需要提取时间(天不重要):
time = (datetime.datetime.min + out).time()
print (time)
00:23:09
out = pd.Timedelta('3 days 00:23:09')
time = (datetime.datetime.min + out).time()
print (time)
00:23:09