繁体   English   中英

滚动 window 与应用 function 在 Z3A43B4F88325D2FA94F14Z 数据帧中返回“dict object 不可调用”

[英]Rolling window with apply function reutrns "dict object is not callable" in pandas data frame

对于我的项目,我需要通过我收集的 IBI(节拍间间隔)数据对心率变异性进行非常精细和连续的测量。 为此,我需要 window 我的数据应用 pandas 滚动 window(大小 = 30 秒)。 我这样定义我的数据框:

py_physio_Data = pd.DataFrame(py_physio_DF)

产生(这只是数据的一部分):

参与者 IBI 时间戳
1 526 2021-11-10 10:54:15
1 658 2021-11-10 10:54:15
1 700 2021-11-10 10:54:16
1 695 2021-11-10 10:54:17

现在,我将数据过滤为仅包括参与者之一。 所以这是有问题的代码:

import hrvanalysis as hrv
py_physio_Data.index = pd.to_datetime(py_physio_Data["Timestamp"])
py_physio_Data.rolling("30s").apply(func = hrv.get_time_domain_features(py_physio_Data["IBI"]))

我将时间戳设置为索引列,然后尝试应用 function get_time_domain_features()。

TypeError: 'dict' object is not callable

我无法弄清楚问题是如何解决它。 我查阅了以前的帖子,尝试了各种语法(参见下面的示例),但我无法找出错误。 任何帮助将不胜感激:D

py_physio_Data.rolling("30s").apply(func = hrv.get_time_domain_features(py_physio_Data))
py_physio_Data.rolling("30s").apply(func = hrv.get_time_domain_features())
py_physio_Data["IBI"].rolling("30s").apply(func = hrv.get_time_domain_features(py_physio_Data["IBI"]))

尝试这个:

py_physio_Data["IBI"].rolling("30s").apply(hrv.get_time_domain_features);

您正在做的是应用get_time_domain() function 的结果,您始终使用整个“IBI”列调用该结果。 相反,如果您仅将 function 指定为可调用的 object,则滚动将使用包含该迭代的“IBI”数据的 Pandas 系列填充它,并将返回结果字典。 在您调用字典之前,它就像是 function 一样返回,这就是它没有返回任何内容的原因。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM