DataFrame中object类型时间列分组求和异常问题求助
解决方法
问题出在czas_oczekiwania列是object类型,直接调用sum()会把它当成字符串拼接,而非时间值相加。你需要先把该列转换成时间增量类型(timedelta),再执行分组求和操作。
具体修改步骤:
第一步:将
czas_oczekiwania列从object转为timedelta类型ph1['czas_oczekiwania'] = pd.to_timedelta(ph1['czas_oczekiwania'], errors='coerce')其中
errors='coerce'会把无法转换的异常值设为NaT,如果你的数据都是标准时间格式(如HH:MM:SS),也可以省略这个参数。第二步:执行分组求和
ph3 = ph1.groupby([pd.to_datetime(ph1['data']).dt.to_period('D'), 'typ'])['czas_oczekiwania'].sum()
如果data列本身已是datetime类型,分组键可以简化:
ph3 = ph1.groupby([ph1['data'].dt.to_period('D'), 'typ'])['czas_oczekiwania'].sum()
这样得到的结果就是每天每个typ对应的总等待时长,类型为timedelta,符合预期的时间求和逻辑。
内容的提问来源于stack exchange,提问作者Grzegorz Z
相关产品推荐
相关产品推荐

