[英]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.