在熊猫中获取“持续时间”(datetime.time)列的平均值

时间:2019-10-24 08:21:46

标签: python excel pandas

我对熊猫还比较陌生,但是我很快就坠入爱河了;-)但是现在,我遇到了一个问题,目前我无法自己解决。我必须执行以下任务:给定一个包含两列 Type Duration 的电子表格,计算每种类型的平均持续时间。

数据在一个看起来像这样的excel电子表格中:

  Type  Duration
    A  00:32:48
    A  00:28:30
    A  00:26:32
    B  00:26:21
    B  01:02:23
    C  00:53:29
    C  00:26:45
    C  00:46:52

我将其加载到这样的数据帧中:

df = pd.read_excel("file.xlsx", "Sheet1")

然后我尝试使用以下方法计算均值:

for type in types:
    mean_duration = df.loc[df["Type"] == type, "Duration"].mean()
    print(mean_duration)

不幸的是,由于持续时间列的类型,我得到了一个错误:

Traceback (most recent call last):
  File "C:\...\venv\lib\site-packages\pandas\core\nanops.py", line 120, in f
    result = alt(values, axis=axis, skipna=skipna, **kwds)
  File "C:\...\venv\lib\site-packages\pandas\core\nanops.py", line 551, in nanmean
    the_sum = _ensure_numeric(values.sum(axis, dtype=dtype_sum))
  File "C:\...\venv\lib\site-packages\numpy\core\_methods.py", line 38, in _sum
    return umr_sum(a, axis, dtype, out, keepdims, initial, where)
TypeError: unsupported operand type(s) for +: 'datetime.time' and 'datetime.time'

是否可以在不更改Excel电子表格本身的数字格式的情况下使它正常工作?我认为这应该可行,因为在Excel中我可以计算多个持续时间的平均值,但是默认情况下,结果是一个浮点值,需要将其格式化为计算后的持续时间。

非常感谢您的帮助!

0 个答案:

没有答案