在 pandas 数据框中对回合进行求和

问题描述 投票:0回答:1
我正在处理由加速度计生成的数据,每次姿势发生变化(例如,从坐到站)或每次有一个单独的步骤时,这个特定模型都会写入一行新数据,然后每一行有持续时间。一些示例行(每个文件约 30k 行):

身份证日期活动类型持续时间18852021-06-294.0000031208.5000018852021-07-072.000001.1000018852021-07-072.000003.2000018852021-07-072.000003.5000018852021-07-072.000004.3000018852021-07-072.000003.7000018852021-07-072.000001.2000018852021-07-072.000001.1000018852021-07-071.000001.00000
事件类型描述是否是躺着、坐着、迈步等,迈步编码为2。

对于数据集中的每一天,我想总结事件类型为 2 的每组连续行的持续时间列,以便我获得每天内每次步进回合的持续时间(稍后我将做一些分组对这些回合进行数学计算以获得平均回合持续时间等信息)。我很难弄清楚要在这里搜索什么,所以我感谢任何帮助!

我很难弄清楚要在这里搜索什么,所以我感谢任何帮助!显然,仅按事件类型分组是行不通的,因为我只需要在特定的不间断步进回合中进行分组。

python pandas accelerometer
1个回答
0
投票
您可以创建自定义石斑鱼:

m = df['Event Type'].eq(2) out = (df[m] .groupby(['ID', (~m).groupby(df['ID']).cumsum()], as_index=False) ['Duration'].sum() )
输出(使用替代输入):

ID Duration 0 1885 18.1 1 1885 6.0
使用的输入:

ID Date Event Type Duration 0 1885 2021-06-29 4.0 31208.5 1 1885 2021-07-07 2.0 1.1 2 1885 2021-07-07 2.0 3.2 3 1885 2021-07-07 2.0 3.5 4 1885 2021-07-07 2.0 4.3 5 1885 2021-07-07 2.0 3.7 6 1885 2021-07-07 2.0 1.2 7 1885 2021-07-07 2.0 1.1 8 1885 2021-07-07 1.0 1.0 9 1885 2021-07-07 2.0 3.7 10 1885 2021-07-07 2.0 1.2 11 1885 2021-07-07 2.0 1.1 12 1885 2021-07-07 1.0 1.0
    
© www.soinside.com 2019 - 2024. All rights reserved.