如何在python中将累积数据转换为多个索引的每日数据?

2024-10-03 09:18:59 发布

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

我有以下形式的数据集-

date      code     A B C
20-02-01  box1     1 2 1
20-02-02  box1     2 2 1
20-02-03  box1     3 2 1
20-02-01  box2     2 1 1
20-02-04  box3     4 2 1
20-02-05  box3     5 2 1
20-02-06  box3     7 2 1 

A、B、C列表示每个框在第一列中给出的日期内的累积值。 现在,我想创建另一行,它可以在python中的Aw.r.t.每个框中找到每日增长量。 例如,最终结果应为-

date      code     A B C D
20-02-01  box1     1 2 1 1
20-02-02  box1     2 2 1 1
20-02-03  box1     3 2 1 1
20-02-01  box2     2 1 1 2 
20-02-04  box3     4 2 1 4 
20-02-05  box3     5 2 1 1 
20-02-06  box3     7 2 1 2 

如何根据两个索引(日期、代码)找到A中的差异


Tags: 数据代码datecode差异形式awbox2
1条回答
网友
1楼 · 发布于 2024-10-03 09:18:59

您可以使用^{}code对数据帧进行分组,然后使用A列上的^{}通过使用函数^{}^{}&^{}

df['D'] = (
    df.groupby(['code'])['A']
    .transform(lambda s: s.sub(s.shift().fillna(0)).abs())
)

结果:

# print(df)
       date  code  A  B  C  D
0  20-02-01  box1  1  2  1  1
1  20-02-02  box1  2  2  1  1
2  20-02-03  box1  3  2  1  1
3  20-02-01  box2  2  1  1  2
4  20-02-04  box3  4  2  1  4
5  20-02-05  box3  5  2  1  1
6  20-02-06  box3  7  2  1  2

相关问题 更多 >