我有一个按ID列分组的时间序列数据.

我try 使用以下代码:

def find_peaks_in_group(group):
    peaks, peak_properties = find_peaks(group['RFPower'], prominence=1, height=0.7)
    group['peaks'] = False
    group.loc[peaks, 'peaks'] = True
    group['peak_heights'] = 0.0
    group.loc[peaks, 'peak_heights'] = peak_properties['peak_heights']
    return group

result_df=df.groupby('ID', group_keys=False).apply(find_peaks_in_group)

但是,我收到了一个键错误:

[Int64Index([76116,76134,76146,76150,76155,76161,76165, 76171、76177、76180、76182、76185、76187、76192、76196、76201、76220、 76224、76230、76235、76240、76242、76247、76252、76257、76276、76282、 76286、76292、76295、76297、76302、76307、76337、76348、76350、76362 76364,77324,93723,94851,94855],dtype=‘int64’)]中 [索引]"

我甚至试着go 掉group_keys=False并重新设置索引,但都无济于事. 有什么建议吗?

推荐答案

import pandas as pd
import numpy as np
from scipy.signal import find_peaks

def find_peaks_in_group(group):
    # Find peaks
    peaks, peak_properties = find_peaks(group['RFPower'], prominence=1, height=0.7)
    
    # Initialize columns to store peak data
    group['peaks'] = False
    group['peak_heights'] = 0.0
    
    # Use iloc to correctly assign values based on relative indices
    if len(peaks) > 0:
        group.iloc[peaks, group.columns.get_loc('peaks')] = True
        group.iloc[peaks, group.columns.get_loc('peak_heights')] = peak_properties['peak_heights']
    
    return group

# Apply the function to each group
result_df = df.groupby('ID').apply(find_peaks_in_group)

Python相关问答推荐

如何在Windows上用Python提取名称中带有逗号的文件?

有症状地 destruct 了Python中的regex?

如何从具有不同len的列表字典中创建摘要表?

django禁止直接分配到多对多集合的前端.使用user.set()

我们可以为Flask模型中的id字段主键设置默认uuid吗

DataFrames与NaN的条件乘法

Python—从np.array中 Select 复杂的列子集

如何在Polars中从列表中的所有 struct 中 Select 字段?

Polars asof在下一个可用日期加入

基于形状而非距离的两个numpy数组相似性

Python全局变量递归得到不同的结果

将标签移动到matplotlib饼图中楔形块的开始处

Beautifulsoup:遍历一个列表,从a到z,并解析数据,以便将其存储在pdf中.

Tensorflow tokenizer问题.num_words到底做了什么?

为什么dict. items()可以快速查找?

如何编辑此代码,使其从多个EXCEL文件的特定工作表中提取数据以显示在单独的文件中

奇怪的Base64 Python解码

为什么在更新Pandas 2.x中的列时,数据类型不会更改,而在Pandas 1.x中会更改?

如何在Django查询集中生成带有值列表的带注释的字段?

将参数从另一个python脚本中传递给main(argv