pandas 同时分割 Dataframe 的所有列

polhcujo  于 2023-03-16  发布在  其他
关注(0)|答案(1)|浏览(128)

我有一个ECG的 Dataframe 。 Dataframe 由12列(ECG词汇表中的导联)组成。我想切割所有列的一些切片,如下图所示。我找到第一列的峰值,定义切割长度,同时切割所有列。**编辑:**事实上,我选择第一列(导联)的最高峰值,并将它们堆叠在名为pos的列表中。然后,我将这些峰值用作参考线,切割参考线之前的500个数据点和参考线之后的500个数据点,并将它们堆叠在名为cut的列表中。这是我的代码,但我得到错误“列表分配索引超出范围”

def slicing (patient, pos, len):
   
   cut = []
   for lead in patient:
     for position in pos: 
        cut[position] = patient.loc[:, str(lead)][(position - len) : (position + len)]
        print (cut)

第一节第一节第一节第一节第一次
请告诉我如何修复错误,以及如何将切片命名为cut 1 = [...] cut 2 = [...]

ycl3bljg

ycl3bljg1#

"list assignment index out of range"-这是因为你正在尝试指派一个值到一个索引,它不在列表中。尝试append()
不要只使用for循环,而是对每个切片尝试enumerate()rename()函数
示例:

for i, lead in enumerate(patient.columns):
        for j, position in enumerate(pos):

            slice_name = f"cut{i+1}_{j+1}"

            cut.append(patient.loc[:, lead][(position - length) : (position + length)].rename(slice_name))
return cut

相关问题