步态数据中各组峰值的计数

2024-06-09 06:55:20 发布

您现在位置:Python中文网/ 问答频道 /正文

所以,我有165名参与者的步态数据,每人12k的数据,相当大

我想通过计算左脚后跟平均力数据的峰值来计算摆动量。 到目前为止,我有以下代码:

from scipy.signal import find_peaks
z = df['mean_heel_l'][0:12118] # but I don't want to slice like this for ALL the data
peaks=find_peaks(z, height=100, width=10)

这对第一个参与者来说是完美的,但我有165

我按参与者分组数据的唯一方法是使用文件名:

from scipy.signal import find_peaks
z = df.groupby(['filename'])['mean_heel_l']
peaks=find_peaks(z, height=100, width=10)

但这会导致错误:ValueError:无法将字符串转换为浮点:

然后我想,也许我可以使用每个参与者的数据计数来选择每个参与者的数据

df.groupby(['filename'])[['mean_heel_l']].count()

有人知道我该怎么做吗


Tags: 数据fromimportdfsignalscipyfindfilename
1条回答
网友
1楼 · 发布于 2024-06-09 06:55:20

下面是一个使用groupby对象的玩具示例。本网站上还有大量简单搜索的示例:

In [28]: df = pd.DataFrame({'filename': ['a', 'a', 'a', 'b', 'b'], 
    ...:                     'value': [2.5, 3, 4.0, 1.1, 2.2]} 
    ...:                     )                                                  

In [29]: df                                                                     
Out[29]: 
  filename  value
0        a    2.5
1        a    3.0
2        a    4.0
3        b    1.1
4        b    2.2

In [30]: groups = df.groupby(['filename'])                                      

In [31]: for f_name, group in groups: 
    ...:     print(f'name of group: {f_name}') 
    ...:     print(group['value']) 
    ...:     print(max(group['value'])) 
    ...:     print() 
    ...:      
    ...:                                                                        
name of group: a
0    2.5
1    3.0
2    4.0
Name: value, dtype: float64
4.0

name of group: b
3    1.1
4    2.2
Name: value, dtype: float64
2.2

相关问题 更多 >